proark
17. September 2008 um 09:50
1
Guten Tag liebe SQL Freunde,
Ich habe eine Tabelle mit verschiedenen Datensätzen, in der 2 spalten sind, mit denen ich arbeiten will: Created(Datetime) und Closed(Datetime)
Ich suche die SQL abfrage, die bei den vielen Datensätze den Datensatz raussucht, wo die spanne zwischen Created und Closed am längsten ist und eine SQL die mir sagt, wo die spanne am kürzesten ist und eine SQL Abfrage.
Hoffe, ihr könnt mir da weiterhelfen
Liebe Grüße
proark
SELECT … FROM … ORDER BY closed - created ASC LIMIT 1
UNION
SELECT … FROM … ORDER BY closed - created DESC LIMIT 1
http://www.postgresql.org/docs/8.3/static/functions-datetime.html
proark
17. September 2008 um 10:04
3
So ich antworte mir mal selbst:
Am längsten offen
SELECT MAX(DateDiff(‘d’, Created, Closed) AS Alias from Table
Am kürzesten offen
SELECT MIN(DateDiff(‘d’, Created, Closed) AS Alias from Table
Durchschnittlich
Am längsten offen
SELECT AVG(DateDiff(‘d’, Created, Closed) AS Alias from Table
proark:
Guten Tag liebe SQL Freunde,
Ich habe eine Tabelle mit verschiedenen Datensätzen, in der 2 spalten sind, mit denen ich arbeiten will: Created(Datetime) und Closed(Datetime)
Ich suche die SQL abfrage, die bei den vielen Datensätze den Datensatz raussucht, wo die spanne zwischen Created und Closed am längsten ist und eine SQL die mir sagt, wo die spanne am kürzesten ist und eine SQL Abfrage.
Hoffe, ihr könnt mir da weiterhelfen
Liebe Grüße
proark
proark:
Guten Tag liebe SQL Freunde,
Ich habe eine Tabelle mit verschiedenen Datensätzen, in der 2 spalten sind, mit denen ich arbeiten will: Created(Datetime) und Closed(Datetime)
Ich suche die SQL abfrage, die bei den vielen Datensätze den Datensatz raussucht, wo die spanne zwischen Created und Closed am längsten ist und eine SQL die mir sagt, wo die spanne am kürzesten ist und eine SQL Abfrage.
Hoffe, ihr könnt mir da weiterhelfen
Liebe Grüße
proark
test=*# select * from proark ;
created | closed
------------------------+------------------------
2008-01-01 00:00:00+01 | 2008-01-30 00:00:00+01
2008-01-01 00:00:00+01 | 2008-03-30 00:00:00+01
2008-01-01 00:00:00+01 | 2008-05-30 00:00:00+02
(3 Zeilen)
Zeit: 0,207 ms
test=*# select *, closed-created from proark order by 3 limit 1 ;
created | closed | ?column?
------------------------+------------------------+----------
2008-01-01 00:00:00+01 | 2008-01-30 00:00:00+01 | 29 days
(1 Zeile)
Zeit: 0,213 ms
test=*# select *, closed-created from proark order by 3 desc limit 1 ;
created | closed | ?column?
------------------------+------------------------+-------------------
2008-01-01 00:00:00+01 | 2008-05-30 00:00:00+02 | 149 days 23:00:00
(1 Zeile)
Andreas
seine min / max geschichte is aber auch nicht schlecht …
warum vergess ich bloss immer dass es aggregat funktionen gibt lach
fragt sich - aus purer neugier - was is schneller ?
wahrscheinlich ist ein
SELECT MIN(closed - created), MAX(closed - created) FROM …
das effizienteste
akretschmer:
EXPLAIN ANALYSE.
Andreas
bin ich der einzige Mann hier?
lach