ich eine Frage für SQL Group By Statement habenSQL Group By Statement
Zuerst Dies ist mein Tisch -> TEMP_DATA
id | a_id | date_time | length | <br>
1074 | 3 | 2016-12-07 09:13:13.490 | 1.036013 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
1076 | 0 | 2016-12-07 09:13:13.867 | 2.110443 | <br>
1077 | 3 | 2016-12-07 09:13:14.490 | 1.027660 | <br>
1078 | 1 | 2016-12-07 09:13:14.690 | 1.742645 | <br>
1079 | 0 | 2016-12-07 09:13:14.867 | 2.121963 | <br>
1080 | 2 | 2016-12-07 09:13:18.390 | 4.008482 | <br>
versuche ich select id, a_id, date_time, Länge für 3 verschiedene a_id bestellen von ID asc so verwende ich diese
SELECT DISTINCT
a_id,
Min(id) id,
Min(Last_Data.lenght) lenght,
(Select date_time from temp_data
where temp_data.id = Min(Last_Data.id)) last_time
FROM (
SELECT *
FROM temp_data
where id >= 1074 and id <= 1080
) Last_Data
GROUP BY a_id
order by id asc
Das Ergebnis
id | a_id | last_time | length | <br>
1074 | 3 | 2016-12-07 09:13:13.490 | 1.013928 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
1076 | 0 | 2016-12-07 09:13:13.867 | 2.110443 | <br>
ist
Ich bekomme falsche Länge für ID. Wie kann ich dieses Problem lösen?
P.S. : Zuerst bekomme ich 3 verschiedene a_id in dieser Tabelle. Dann verwende ich Select Top 3 * Aussage. Weil zwei gleiche a_id hintereinander kommen können. Zum Beispiel
id | a_id | date_time | length | <br>
1074 | 1 | 2016-12-07 09:13:13.490 | 1.013928 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
Ihre Anfrage 'last_time' wählt, aber es gibt keine solche Spalte im Ergebnis angegeben ... Auch unterschiedliche Spaltenreihenfolge – jarlh
@jarih Ich repariere es – BK52
welche RDMS verwendest du? Die Antwort kann davon abhängen. – trincot