私はpostgreSQLで私のクエリに問題があります。 最初のクエリ:Postgre:2つの異なるクエリですが、同じ結果
SELECT first_name, last_name, service_name, max(usluga)
FROM (SELECT first_name, last_name, service_name,
count(scheduler_scheduleevents.id) as usluga
FROM workers_workers
LEFT JOIN scheduler_scheduleevents
ON scheduler_scheduleevents.worker_id = workers_workers.id
AND is_start_time = True
AND is_active = False
AND (scheduler_scheduleevents.date < %s
or (scheduler_scheduleevents.date = %s and time < %s))
LEFT JOIN user_settings_userservices
ON user_settings_userservices.id =scheduler_scheduleevents.service_type_id
WHERE workers_workers.salonid_id= %s
AND scheduler_scheduleevents.worker_id = %s
GROUP BY workers_workers.id, service_name
) as x
GROUP BY x.first_name, x.last_name, x.service_name
と第二:
SELECT first_name, last_name, service_name, min(usluga)
FROM (SELECT first_name, last_name, service_name,
count(scheduler_scheduleevents.id) as usluga
FROM workers_workers
LEFT JOIN scheduler_scheduleevents
ON scheduler_scheduleevents.worker_id = workers_workers.id
AND is_start_time = True
AND is_active = False
AND (scheduler_scheduleevents.date < %s
or (scheduler_scheduleevents.date = %s and time < %s))
LEFT JOIN user_settings_userservices
ON user_settings_userservices.id =scheduler_scheduleevents.service_type_id
WHERE workers_workers.salonid_id= %s
and scheduler_scheduleevents.worker_id = %s
GROUP BY workers_workers.id, service_name
) as x
GROUP BY first_name, last_name, service_name
最初のクエリは私に私に少なくとも倍にした、あまりにもわずか1サービスを提供する必要があり、ほとんどの時間と2番目のクエリを作っただけで1サービスを与える必要があります。 問題はどちらのクエリでも同じ結果が得られます:すべてのサービスのリストとそれぞれの回数。
大変感謝しています。私ははっきりとした機能の仕組みを学ばなければならない: – Patryk