MYSQL View group by
Hallo zusammen,
ich habe eine Tabelle in einer MySQL DB über die ich eine View legen möchte:
Die Tabelle sieht so aus:
(ID ist der PK)
Zu erkenne ist, das es für die Startnummer 401 zwei eingräte gibt. Das kann durchaus mal vorkommen. Für mehrere Auswertungen, brauche ich jetzt eine View, die mir für jede Kombination aus Startnummer und Messpunkt nur die Zeile mit der frühsten Uhrzeit anzeigt. Bei der Spalt Zeit handelt es sich um den Datentyp time
mein Ansatz war folgender:
mit dem Ergebnis:

Hier ist zusehen, dass beim gruppieren der höhere Wert aus der Spalte zeit genommen wurde.
Wie kann ich das beeinflussen?
Danke für Eure Hilfe
ich habe eine Tabelle in einer MySQL DB über die ich eine View legen möchte:
Die Tabelle sieht so aus:

Zu erkenne ist, das es für die Startnummer 401 zwei eingräte gibt. Das kann durchaus mal vorkommen. Für mehrere Auswertungen, brauche ich jetzt eine View, die mir für jede Kombination aus Startnummer und Messpunkt nur die Zeile mit der frühsten Uhrzeit anzeigt. Bei der Spalt Zeit handelt es sich um den Datentyp time
mein Ansatz war folgender:
1
select * from messungen group by startnummer,messpunkt order by startnummer, messpunkt, zeit

Hier ist zusehen, dass beim gruppieren der höhere Wert aus der Spalte zeit genommen wurde.
Wie kann ich das beeinflussen?
Danke für Eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 334416
Url: https://administrator.de/forum/mysql-view-group-by-334416.html
Ausgedruckt am: 06.04.2025 um 11:04 Uhr
2 Kommentare
Neuester Kommentar
Moin,
wenn du mit Group By arbeitest, musst du die gruppierten Felder auch in das Select Statement mit aufnehmen.
Des Weiteren musst du das Attribut Zeit mit Min(Zeit) darstellen, damit die beste Zeit verwendet wird...
was dir helfen würde wäre folgendes:
Gruß
em-pie
wenn du mit Group By arbeitest, musst du die gruppierten Felder auch in das Select Statement mit aufnehmen.
Des Weiteren musst du das Attribut Zeit mit Min(Zeit) darstellen, damit die beste Zeit verwendet wird...
was dir helfen würde wäre folgendes:
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SELECT DISTINCT
startnummer
, messpunkt
, MIN(Zeit) AS "Bestzeit"
FROM
messungen
GROUP BY
startnummer
, messpunkt
ORDER BY
startnummer
, messpunkt
Gruß
em-pie