2016-07-16 12 views
0
customer_i  fundamt  installment   date_time 
41     115  1054     2014-05-27 
42     116  1067     2014-07-27 
41     117  1089     2014-07-30 
42     118  1120     2014-07-30 
43     118  1120     2014-08-30 
42     118  1120     2014-08-30 
41     118  1120     2014-06-30 
43     118  1120     2014-02-30 

Ich möchte wie folgt aus:drucken Zeilen mit individuellen max Datum in Mysql

customer_id  fundamt installment   date_time 
41     117  1089     2014-07-30 
42     118  1120     2014-08-30 
43     118  1120     2014-08-30 

Zeile, die max date_time enthalten:

Bitte helfen Sie mir SQL in Mysql Schreiben

+0

nein, fragte verwenden kann ich nur, wenn nicht in der Lage, es zu schreiben. Es könnte für dich einfacher sein, aber nicht für alle. – Samiul

Antwort

1

Nachdem man durch gründlich Ihre Frage erkannte die tatsächliche Anforderung. Dies könnte eine einfache Abfrage sein, einfacher zu lesen und zu warten.

SELECT * FROM your_table WHERE (customer_id, date_time) IN (SELECT customer_id, MAX(date_time) FROM test GROUP BY customer_id) 
ORDER BY customer_id 

bearbeiten

Andere Option ich denken kann links mit sich selbst auf den Tisch kommen.

SELECT a.* 
FROM your_table a 
LEFT JOIN your_table b ON a.customer_id = b.customer_id AND a.date_time < b.date_time 
WHERE b.customer_id IS NULL 
+0

die Sache ist, dass dies für weniger Zeilen nicht für große Zeilen geeignet ist. Ich meine Millionen von Zeilen. So kann es mir nicht helfen. – Samiul

+0

Es gibt zwei Möglichkeiten, wie ich die benötigte Ausgabe abrufen kann. Ich habe auch eine weitere Abfrage für Ihre Referenz hinzugefügt. –

1

Sie ein in Klausel mit subselect

SELECT customer_id, fundamt, installment, date_time 
FROM your_table 
where (customer_id, date_time) in (select customer_id , max(date_time) 
         FROM your_table 
         GROUP BY customer_id )