Wählen Sie die Spalten, indem Sie Spalte mehrere Spalten in SQL

Stellen Sie sich folgende beispielhafte Tabelle:

time      name     value1 value2
12:00     Hans     2      4
12:30     Hans     2      4
13:00     Hans     3      5
14:00     Peter    4      4
15:00     Peter    4      4

Ich möchte die filter von maximal Zeitstempel und Namen.

Bedeutung ich will

13:00     Hans     3      5
15:00     Peter    4      4

Mit: select max(Zeit),name,Wert1,Wert2 from Tabelle group by name
funktioniert nicht. Es sagt mir, dass die Verwendung einer Aggregatfunktion oder die group by auf Wert1 und Wert2 auch.

Wenn ich group by name, Wert1 und Wert2 dann bekomme ich das folgende Ergebnis, da value1 und value2 unterschiedlich sind für zwei Reihen von Hans:

12:30     Hans     2      4
13:00     Hans     3      5
15:00     Peter    4      4

Was ist die Lösung?

BEARBEITEN:
Es ist ein PostgreSQL.

Bitte geben Sie das RDBMS, das Sie ansprechen, indem Sie den entsprechenden tag (Oracle, SQL Server, MySQL, etc.). Möglicherweise gibt es Antworten, die die Vorteile von Sprache oder Produkt-features, die nicht universell unterstützt. Auch, durch tagging Sie mit einem bestimmten RDBMS, Ihre Frage kann erhalten Aufmerksamkeit von Menschen, die besser geeignet, Sie zu beantworten.
vielen Dank für diesen Hinweis.
Name des RDBMS ist PostgreSQL oder eine kürzere Postgres.

InformationsquelleAutor Vladimir S. | 2013-03-11

Schreibe einen Kommentar