ahmedrahil786

Accident data for last 6 months - Redash- Rahil- set dates

May 3rd, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. select A.return_date as return_date, A.rid as rid, A.dur as dur, A.ad_sdur as ad_sdur, A.distance as distance, A.car_name as car_name, A.age as age,
  2. IFNULL(Round(B.avg_repair_cost_per_accident,0),0) as avg_repair_cost_per_accident,ifnull(B.number_of_accidents,0) as number_of_accidents
  3. from
  4. (select
  5. distinct r.id as rid, r.member_id as mid,
  6. round(sum(timestampdiff(minute, r.start_at, r.end_at)/60),2) as dur,
  7. round(sum(floor(timestampdiff(minute, r.start_at, r.end_at)/60/24)*12+if(mod(timestampdiff(hour, r.start_at, r.end_at),24)>=12,12,mod(timestampdiff(minute, r.start_at, r.end_at)/60,24))),2) as ad_sdur,
  8. IFNULL(sum(ra.mileage),0) as distance,cc.car_name as car_name,
  9. (YEAR(r.start_at) - YEAR(m.birthday)) as age,
  10. Date(r.return_at + interval '8' hour) as return_Date
  11. from reservations r left join members m on r.member_id = m.id
  12. left join reservation_appendixes ra on ra.reservation_id = r.id
  13. LEFT JOIN cars c ON c.id=r.car_id
  14. LEFT JOIN car_classes cc ON cc.id=c.car_class_id
  15. where r.state in ('completed')
  16. and r.return_at + interval 8 hour >= date_sub('{{ end }}', interval 6 month)
  17. and r.return_at + interval 8 hour <= '{{ end }}'
  18. and m.imaginary in ('sofam', 'normal')
  19. and r.member_id not in ('125', '127')
  20. group by rid) A
  21. left join
  22. (SELECT r.id as rid,
  23. cc.car_name "car_name",
  24. cc.maker "manufacturer",
  25. avg(ca.quotation_amount) "avg_repair_cost_per_accident",
  26. sum(ca.quotation_amount) "total_repair_cost_per_car_type",
  27. count(c.registration_no) "number_of_accidents",
  28. crs.name,
  29. year(ca.accident_at),
  30. year(ca.created_at) "GOS record created"
  31. FROM car_accidents ca
  32. LEFT JOIN reservations r ON r.id=ca.reservation_id
  33. LEFT JOIN cars c ON c.id=ca.car_id
  34. LEFT JOIN car_classes cc ON cc.id=c.car_class_id
  35. LEFT JOIN car_repair_shops crs ON crs.id=ca.car_repair_shop_id
  36. WHERE ca.state <> "duplicated"
  37. AND ca.state <> "deleted" and ((ca.insurance_type<>"thirdParty" and ca.is_insurance=1) or ca.is_insurance=0)
  38. AND greatest(date(r.occupy_start_at+interval 8 hour),date(ca.accident_at+interval 8 hour))>= date_sub('{{ end }}', interval 6 month)
  39. AND greatest(date(r.occupy_start_at+interval 8 hour), date(ca.accident_at+interval 8 hour))<= '{{ end }}'
  40. GROUP BY r.id
  41. ORDER BY avg(ca.quotation_amount) DESC)B
  42. on A.rid = B.rid
  43. group by 2
Advertisement
Add Comment
Please, Sign In to add comment