Hallo,
ich habe eine Tabelle in der Einsatzzeiten aufgelistet sind. Dort steht:
id, abteilung, mitarbeiter, beginn, ende, datum
Wobei beginn und ende eine Uhrzeit (hhmmss) ist und das datum als yyyymmdd abgelegt wurde.
Jetzt möchte ich gerne eine Auflistung, welche Abteilung zu welcher Stunde wie viele Einsätze angefangen hat, wieviele minimal, maximal, durchschnittlich. Dabei sollen alle Datensätze herangezogen werden (alle Tage).
[highlight=SQL]
SELECT abteilung, Substr(beginn, 1, 2) as stunde,
Count(*) as anzahl,
Max( Count(*) ) as anzahlmax,
Min( Count(*) ) as anzahlmin,
Avg( Count(*) ) as anzahlavg
FROM tabelle
GROUP BY abteilung, Substr(beginn, 1, 2)
[/highlight]
Aber das geht so ja nicht. Ich habe es wie folgt probiert, bekomme dabei aber immer die gleichen Werte wie bei Count(*).
[highlight=SQL]
Min( Count(*) ) OVER ( PARTITION BY abteilung, Substr(beginn, 1, 2) ) as anzahlmin1,
Min( ( SELECT Count(*)
FROM "tabelle" tblin
WHERE tblin.abteilung = tblout.abteilung AND Substr(tblin.beginn, 1, 2) = Substr(tblout.beginn, 1, 2)
) ) as anzahlmin2,
[/highlight]
Wenn ich eine Woche habe von Montag bis Freitag und mir z.B. 12 Uhr anschaue (3, 4, 6, 7, 6), dann müsste z.B. bei Min 3 Einsätze stehen, bei Max 7 Einsätze und bei Avg 5,2 Einsätze.
Grüße,
Yusuf
ich habe eine Tabelle in der Einsatzzeiten aufgelistet sind. Dort steht:
id, abteilung, mitarbeiter, beginn, ende, datum
Wobei beginn und ende eine Uhrzeit (hhmmss) ist und das datum als yyyymmdd abgelegt wurde.
Jetzt möchte ich gerne eine Auflistung, welche Abteilung zu welcher Stunde wie viele Einsätze angefangen hat, wieviele minimal, maximal, durchschnittlich. Dabei sollen alle Datensätze herangezogen werden (alle Tage).
[highlight=SQL]
SELECT abteilung, Substr(beginn, 1, 2) as stunde,
Count(*) as anzahl,
Max( Count(*) ) as anzahlmax,
Min( Count(*) ) as anzahlmin,
Avg( Count(*) ) as anzahlavg
FROM tabelle
GROUP BY abteilung, Substr(beginn, 1, 2)
[/highlight]
Aber das geht so ja nicht. Ich habe es wie folgt probiert, bekomme dabei aber immer die gleichen Werte wie bei Count(*).
[highlight=SQL]
Min( Count(*) ) OVER ( PARTITION BY abteilung, Substr(beginn, 1, 2) ) as anzahlmin1,
Min( ( SELECT Count(*)
FROM "tabelle" tblin
WHERE tblin.abteilung = tblout.abteilung AND Substr(tblin.beginn, 1, 2) = Substr(tblout.beginn, 1, 2)
) ) as anzahlmin2,
[/highlight]
Wenn ich eine Woche habe von Montag bis Freitag und mir z.B. 12 Uhr anschaue (3, 4, 6, 7, 6), dann müsste z.B. bei Min 3 Einsätze stehen, bei Max 7 Einsätze und bei Avg 5,2 Einsätze.
Grüße,
Yusuf
Comment