Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- query = f'''
- SELECT c.case_id
- FROM collisions c
- JOIN (
- -- находим по каждому case_id в таблице parties сколько машин участвовало в качестве сторон дтп:
- -- подзапрос p выбирает case_id и считает количество записей в таблице parties,
- -- где party_type равно 'car', группируя их по case_id - полученное значение называется car_count_parties
- SELECT case_id, COUNT(*) AS car_count_parties
- FROM parties
- WHERE party_type = 'car'
- GROUP BY case_id
- ) p ON c.case_id = p.case_id
- JOIN (
- -- находим по каждому case_id в таблице vehicles сколько машин участвовало в качестве сторон дтп:
- -- подзапрос v выбирает case_id в таблице vehicles и считает количество записей (здесь кажда запись априори машина),
- -- группируя их по case_id - полученное значение называется car_count_vehicles
- SELECT case_id, COUNT(*) AS car_count_vehicles
- FROM vehicles
- GROUP BY case_id
- ) v ON c.case_id = v.case_id
- -- к каждому case_id из collisions присоединено значение car_count_parties и car_count_vehicles
- -- отфильтрованы те значения, где количество машин из parties не равно количеству машин из vehicles
- WHERE car_count_parties != car_count_vehicles
- AND collision_date BETWEEN '2012-01-01' AND '2012-12-31'
- '''
- data = pd.read_sql_query(query, con = engine)
- data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement