Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. EXPLAIN ANALYSE
  2. SELECT
  3. dt.Name,
  4. wg.Name,
  5. wg.Phone,
  6. jb.MaxPrice,
  7. jb.Minprice
  8. FROM jobs as jb
  9. JOIN Workgiver as wg on jb.BossID = wg.BossID
  10. JOIN Duty as dt on jb.PositionID = dt.PositionID
  11. JOIN VacationResume as vr on jb.VacationID = vr.VacationID
  12. LEFT OUTER JOIN Resume as res on vr.ResumeID = res.ResumeID
  13. LEFT OUTER JOIN users as us on us.UserID = res.UserID
  14. WHERE ((dt.Name LIKE '') and (wg.Name NOT LIKE 'User54554') and (us.Name != 'User2534')
  15. and (Minprice > 15000 and Maxprice < 110000));
  16.  
  17. SELECT
  18. wg.Name,
  19. wg.Phone,
  20. jb.Maxprice,
  21. jb.Minprice,
  22. ((jb.Maxprice + jb.Minprice) / 2) AS AVG
  23. FROM Workgiver as wg
  24. JOIN jobs as jb on wg.BossID = jb.BossID
  25. JOIN VacationResume as vr on jb.VacationID = vr.VacationID
  26. JOIN Candidats as can on vr.VacationResumeID = can.VacationResumeID
  27. WHERE (date_trunc('month', can.Date) >= (date_trunc('month', current_date) - ('2 month'::interval)))
  28. order by ((jb.MaxPrice + jb.MinPrice) / 2) DESC
  29. LIMIT 5;
  30.  
  31. EXPLAIN ANALYZE
  32. SELECT DISTINCT jb.VacationID, max(can.Date)
  33. FROM jobs as jb
  34. LEFT OUTER JOIN VacationResume as vr on jb.VacationID = vr.VacationID
  35. LEfT OUTER JOIN Candidats as can on vr.VacationResumeID = can.VacationResumeID
  36. GROUP BY (jb.VacationID, can.Date)
  37. HAVING (can.Date <= (date_trunc('year', current_date) - ('1 year'::interval)))
  38. order by (max(can.Date)) DESC;
  39.  
  40. -- create index on Candidats (EXTRACT(quarter from Date)) ;
  41. -- drop index "Candidats_date_part_idx";
  42.  
  43. --HW 2
  44. --1
  45. explain analyse
  46. SELECT dt.Name,
  47. count(case EXTRACT(quarter from can.Date) when 1 then 1 else NULL end) as Fir,
  48. count(case EXTRACT(quarter from can.Date) when 2 then 1 else NULL end) as Sec,
  49. count(case EXTRACT(quarter from can.Date) when 3 then 1 else NULL end) as Thi,
  50. count(case EXTRACT(quarter from can.Date) when 4 then 1 else NULL end) as Four,
  51. EXTRACT(YEAR FROM can.Date) as Year
  52. FROM Duty as dt
  53. LEFT OUTER JOIN (jobs as jb LEFT JOIN (VacationResume as vr LEFT JOIN Candidats as can
  54. on vr.VacationResumeID = can.VacationResumeID)
  55. ON jb.VacationID = vr.VacationID)
  56. ON dt.PositionID = jb.PositionID
  57. GROUP BY (dt.PositionID, EXTRACT(YEAR FROM can.Date))
  58. --having (EXTRACT(YEAR FROM C."Date") is not NULL)
  59. ORDER BY (dt.PositionID);
  60.  
  61.  
  62.  
  63. SELECT dt.Name,
  64. count(case (EXTRACT(quarter from can.Date) * 10000) + EXTRACT(Year from can.Date)
  65. when 10000 + 2018 then 1
  66. else NULL end) as QU1,
  67. count(case (EXTRACT(quarter from can.Date) * 10000) + EXTRACT(Year from can.Date)
  68. when 20000 + 2018 then 1
  69. else NULL end) as QU2,
  70. count(case (EXTRACT(quarter from can.Date) * 10000) + EXTRACT(Year from can.Date)
  71. when 30000 + 2018 then 1
  72. else NULL end) as QU3,
  73. count(case (EXTRACT(quarter from can.Date) * 10000) + EXTRACT(Year from can.Date)
  74. when 40000 + 2018 then 1
  75. else NULL end) as QU4
  76. FROM Duty as dt
  77. LEFT OUTER JOIN (jobs as jb LEFT JOIN (VacationResume as vr LEFT JOIN Candidats as can
  78. on vr.VacationResumeID = can.VacationResumeID)
  79. ON jb.VacationID = vr.VacationID)
  80. ON dt.PositionID = jb.PositionID
  81. GROUP BY (dt.PositionID)
  82. ORDER BY (dt.PositionID);
  83. --2
  84.  
  85.  
  86. SELECT DISTINCT wg.Name, max(can.Date)
  87. FROM Workgiver as wg
  88. LEFT OUTER JOIN jobs as jb on wg.BossID = jb.BossID
  89. left outer JOIN VacationResume as vr on jb.VacationID = vr.VacationID
  90. left outer JOIN Candidats as can on vr.VacationResumeID = can.VacationResumeID
  91. GROUP BY (wg.Name, can.Date)
  92. HAVING (can.Date <= (date_trunc('year', current_date) - ('1 year'::interval)))
  93. order by (max(can.Date)) DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement