Advertisement
gagarin_1982

Untitled

Nov 22nd, 2024
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. query = f'''
  2. SELECT c.case_id
  3. FROM collisions c
  4.  
  5. JOIN (
  6.  
  7. -- находим по каждому case_id в таблице parties сколько машин участвовало в качестве сторон дтп:
  8. -- подзапрос p выбирает case_id и считает количество записей в таблице parties,
  9. -- где party_type равно 'car', группируя их по case_id - полученное значение называется car_count_parties
  10.  
  11. SELECT case_id, COUNT(*) AS car_count_parties
  12. FROM parties
  13. WHERE party_type = 'car'
  14. GROUP BY case_id
  15. ) p ON c.case_id = p.case_id
  16.  
  17. JOIN (
  18.  
  19. -- находим по каждому case_id в таблице vehicles сколько машин участвовало в качестве сторон дтп:
  20. -- подзапрос v выбирает case_id в таблице vehicles и считает количество записей (здесь кажда запись априори машина),
  21. -- группируя их по case_id - полученное значение называется car_count_vehicles
  22.  
  23. SELECT case_id, COUNT(*) AS car_count_vehicles
  24. FROM vehicles
  25. GROUP BY case_id
  26. ) v ON c.case_id = v.case_id
  27.  
  28. -- к каждому case_id из collisions присоединено значение car_count_parties и car_count_vehicles
  29. -- отфильтрованы те значения, где количество машин из parties не равно количеству машин из vehicles
  30.  
  31. WHERE car_count_parties != car_count_vehicles
  32. AND collision_date BETWEEN '2012-01-01' AND '2012-12-31'
  33. '''
  34.  
  35. data = pd.read_sql_query(query, con = engine)
  36. data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement