Hier 2 Outputs aus 2 Abfragen:
Output 1:
Output 2:
Nun möchte ich "finishedWorkItems" durch "allWorkItems" teilen, um einen Prozentsatz zu bekommen. In vereinfachten Code würde ich das so machen:
Leider funktioniert es nicht so einfach, wie hier oben oder doch? Ich hab es mit subqueries versucht, was aber nicht geklappt hat.
Hat jmd eine Idee, wie man es machen könnte?
Der gewünschte Output würde folgendermaßen ausschauen:
Hier noch der vollständige Code:
Und hier noch das Diagramm für die Beziehungen:
Output 1:
duration | allWorkItems |
between 15 and 60 min | 56 |
bigger than 60 min | 39 |
Output 2:
duration | finishedWorkItems |
between 15 and 60 min | 19 |
bigger than 60 min | 28 |
Nun möchte ich "finishedWorkItems" durch "allWorkItems" teilen, um einen Prozentsatz zu bekommen. In vereinfachten Code würde ich das so machen:
SQL:
SELECT CASE
WHEN strftime('%s', end) - strftime('%s', beginning) < 15*60 THEN 'smaller than 15 min'
WHEN strftime('%s', end) - strftime('%s', beginning) BETWEEN 15*60 AND 60*60 THEN 'between 15 min and 60 min'
ELSE 'more than 60 min' END AS duration,
**(COUNT(task_id WHERE finished = true)/COUNT(task_id)) finishingRate**
FROM
[..](Ich denke die Abfrage wäre zu lang; ich pack sie aber unten nochmal vollständig hin)
GROUP BY 1
Leider funktioniert es nicht so einfach, wie hier oben oder doch? Ich hab es mit subqueries versucht, was aber nicht geklappt hat.
Hat jmd eine Idee, wie man es machen könnte?
Der gewünschte Output würde folgendermaßen ausschauen:
Duration | finishingRate |
between 15 and 60 min | 0,33 |
bigger than 60 min | 0,71 |
Hier noch der vollständige Code:
SQL:
1. SELECT CASE
WHEN strftime('%s', ende) - strftime('%s', anfang) < 15*60 THEN 'kleiner als 15 min'
WHEN strftime('%s', ende) - strftime('%s', anfang) BETWEEN 15*60 AND 60*60 THEN 'zwischen 15 min und 60 min'
ELSE 'größer als 60 min' END AS Dauer,
COUNT(Aufgabe.Aufgabe_ID) erledigteAufgaben
FROM
(SELECT COUNT(k_id), k_id, Nutzer._Id, Nutzer.Name
FROM Nutzer
JOIN Kalender
ON Nutzer._Id = Kalender.nutzer_id
JOIN Ereignis
ON Ereignis.K_ID = Kalender.Name
GROUP BY k_id, nutzer_id, Nutzer.name
ORDER BY 1 DESC
LIMIT 1) AS sub
JOIN Ziel
ON sub._id = Ziel.Nutzer_ID
JOIN Aufgabe
ON Ziel.Ziel_ID = Aufgabe.ziel
!!Aufgabe.fertig = true!!
GROUP BY 1
Und hier noch das Diagramm für die Beziehungen: