So vermeiden Sie die Gruppierung nach bestimmten Spalten
P粉667649253
P粉667649253 2023-07-25 14:08:22
0
1
370

Ich habe eine Datentabelle zu Terminen und wenn die zugehörigen Daten aktualisiert werden, kann jeder Termin mehrere Datenzeilen haben. Ich möchte den letzten Datensatz jedes Termins auswählen, um den neuesten Schnappschuss jedes Termins zu erhalten.

Im angehängten Code bin ich gezwungen, nach close_pallets und close_units zu gruppieren, was sich auf das auswirkt, was ich sehe (d. h. mehrere zurückgegebene Zeilen pro Termin). Ich möchte nur nach a.appointment_id gruppieren, damit ich eine Zeile pro Termin erhalte. Was soll ich tun?


SELECT MAX(appointment_record_version_number), termine_id, date_pallets AS close_pallets, date_units AS close_units AUS b.dh WO last_updated_datetime ZWISCHEN „01.06.2023“ UND „30.06.2023“ UND Warehouse_id = 'xxx' GRUPPIERE NACH termine_id, close_pallets, close_units


P粉667649253
P粉667649253

Antworte allen (1)
P粉744691205

您将需要使用子查询来实现这一点。实际上,您需要获取每个约会ID的最大记录版本:

SELECT appointment_record_version_number, appointment_id, appointment_pallets AS close_pallets, appointment_units AS close_units FROM b.dh AS t1 WHERE t1.appointment_record_version_number = ( SELECT MAX(appointment_record_version_number) FROM b.dh WHERE b.dh.data = t1.data ) AND last_updated_datetime BETWEEN '2023-06-01' AND '2023-06-30' AND warehouse_id = 'xxx'

你也可以使用JOIN语句来选择最大值,有时会更快:

SELECT t1.appointment_record_version_number, t1.appointment_id, t1.appointment_pallets AS close_pallets, t1.appointment_units AS close_units FROM b.dh AS t1 LEFT JOIN b.dh AS t2 ON ( t1.appointment_record_version_number = t2.appointment_record_version_number AND t1.appointment_id < t2.appointment_id ) WHERE t2.appointment_record_version_number IS NULL AND last_updated_datetime BETWEEN '2023-06-01' AND '2023-06-30' AND warehouse_id = 'xxx';

根据您的用例,特别是如果您的数据库很大,您可以使用其他子查询或索引来进一步优化请求,但它已经相当快了。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!