MAX() Problem

Guten Tag meine lieben SQL Freunde,

ich hab eine SQL Abfrage die lautet:

SELECT ID, MAX(DateDiff(‘d’, Created, Closed) AS Alias FROM table WHERE status = ‘closed’

Irgendwie scheint das nicht zu funktionieren, das ich auch die ID mit der SQL abfrage bekomme.

mit dem MAX() alleine funktioniert es aber nicht mide dem ID,MAX() … wie bekomme ich denn trotzdem die ID?

Liebe Grüße
proark

Davon abgesehen, daß es in PG keine solche Funktion gibt, hast Du auch eine Klammer vergessen. Dein SQL kann also nur fehlschlagen.

Irgendwie scheint das nicht zu funktionieren, das ich auch die ID mit der SQL abfrage bekomme.

Korrekt wäre:

test=# SELECT ID, max(closed-created) AS Alias FROM proark group by id;
 id |       alias
----+-------------------
    | 149 days 23:00:00
  1 | 29 days
  2 | 89 days
(3 Zeilen)



mit dem MAX() alleine funktioniert es aber nicht mide dem ID,MAX() … wie bekomme ich denn trotzdem die ID?

Liebe Grüße
proark

Das zeigten wir Dir doch schon, oder?

select id from proark order by closed-created desc limit 1;

Andreas

test=# SELECT ID, max(closed-created) AS Alias FROM proark group by id;


Mit der Abfrage bekomme ich aber nicht die höchste differenz von allen spalten sondern nur je ID die höchste Differenz und das ist ja nur eine!

Hätte ich eine closed-created Spalte, in der dieser Wert drin steht wäre es natürlich kein problem. Habe ich ab er nicht :slight_smile:

Korrekt.

Hätte ich eine closed-created Spalte, in der dieser Wert drin steht wäre es natürlich kein problem. Habe ich ab er nicht > :slight_smile: >

Also, die Tabelle schaut so aus:

test=*# select * from proark ;
        created         |         closed         | id
------------------------+------------------------+----
 2008-01-01 00:00:00+01 | 2008-01-30 00:00:00+01 |  1
 2008-01-01 00:00:00+01 | 2008-03-30 00:00:00+01 |  2
 2008-01-01 00:00:00+01 | 2008-05-30 00:00:00+02 |  3
(3 Zeilen)

Und ich bekomme:

test=*# select * from proark order by closed-created desc limit 1;
        created         |         closed         | id
------------------------+------------------------+----
 2008-01-01 00:00:00+01 | 2008-05-30 00:00:00+02 |  3
(1 Zeile)

Wie man sieht, habe ich keine Spalte closed-created, sondern berechne dies nur. Danach sortiere ich das, absteigend. Da mich das MAX() interessiert, brauche ich nur die erste Zeile.

Nun klar?

Andreas