Auslastungen berechnen

Kampfgummibaerlie

Datenbank-Guru
Beiträge
728
Ich würde gerne, einfach nur aus Interesse am Ganzen berechnen, welche Maschine wie sehr "ausgelastet" ist, sprich abhängig von der Tatsache, dass jede Sekunde wärend der Öffnungszeit gezählt wird, und dieser als Divident zählt bei meiner Rechnung, dass dieser Wert die Summe aller (bisherigen) Öffnungszeiten dividiert.

Mir ist klar, dass das Ganze in Prozent angegeben werden sollte, und so weiter, aber ich würde diese "Auslastungen" auch gerne für jedes einzelne Monat anzeigen lassen.

Ich denke, dass ich schon relativ weit in der "Materie" bin, wäre auch stolz auf mich, und so weiter, aber ich glaube bin jemand, dem man alles vor die Füße bringen muss, damit er sich weiter damit auseinandersetzt.

Meine Idee wäre bisher gewesen:
Code:
select to_char(sum(tsrange_diff(mietzeit)), 'Stunden'), maschinen_id from vermietungen group by maschinen_id order by maschinen_id

Das funktioniert mal recht gut, ich frage mich nur, ob man den "Result-Wert" irgendwie mittels to_char auch verdeutschen kann (?) sprich, statt den 'Hours' dort, hätte ich gerne 'Stunden'. (Denke ich braucht wieder einen Case when)

Und dabei wäre eben die Frage, wie ich das auch nach dem Monat "gruppieren" kann. Meine Idee wäre, eine Funktion, welche aus einer lower(tsrange) wiederum das Monat extracted, aber es wurde ja gesagt, dass Funktionen nach Möglichkeit "verhindert" werden sollten, und vorher alle anderen Möglichkeiten ausgeschöpft werden.

Danke :)
 
Werbung:
wenn ich Dich richtig verstehe, könnte dies Dir helfen:

Code:
test=*# select age('2017-01-01'::date);
  age   
-----------------
 11 mons 17 days
(1 Zeile)

test=*# select extract(month from age('2017-01-01'::date)) || ' Monate';
 ?column?  
-----------
 11 Monate
(1 Zeile)

test=*#
 
Zurück
Oben