mit einer Postgresql 9.6 Tabellenstruktur wie:Postgresql zwischen min max in den
who | when
Jeden Tag hat mehrere Datensätze mit gleichen den und verschiedenen wenn. Ipotsetically jeder Datensatz ist ein in oder aus Aktion für Wer, so müssen die Gesamtzeit in für jeden, wer.
heißt
who | when
A | 2017-03-01 08:00
A | 2017-03-01 12:00
A | 2017-03-01 13:00
A | 2017-03-01 15:00
wie kann ich in den insgesamt Stunden bekommen?
Ich denke, dass max (wann) - min (wann) die Periode erhält, aber die mittleren Daten subtrahieren müssen, mittlere min und max.
So müssen die 00.00 als ‚morningout‘ und 13.00 Uhr als ‚afternoonin‘ zu bekommen, aber wenn ich legte den betweeen min max in dem es klagt
‚keine Aggregatfunktion möglich in dem‘
select who,
to_char(date_trunc('day', when), 'YYYY-MM-DD') "thisday",
count(who) as 'signIn'
min(when) as 'morningout'
max(when) as 'afternoonin'
from the_table
where when between max(when) and min(when)
group by who, "thisday"
order by who;
Normalerweise setzen Sie WHERE zwischen FROM und GROUP BY. Für Aggregatfunktionsbedingungen benötigen Sie stattdessen eine HAVING-Klausel. – jarlh
Wann ist zwischen max (wann) und min (wann) für jeden Zeitpunkt der Tabelle? –