Sqlite3eine Anzahl von Zeilen erhalten, die Bedingung erfüllen
Aufgabe: einen Datensatz erhalten, die die folgenden Daten enthält - NOTES BESIDE SÄULEN derzeit
SELECT DISTINCT DateTime(Rounded, 'unixepoch') AS RoundedDate, -- Rounded DateTime to the floor hour
Count() AS Count, -- Count of items that registered within the above time
CAST (avg(Speed) AS INT) AS AverageSpeed, -- Average table.Speed column data within the defined datetime
Count() AS SpeederCount -- ?? WTF? [pseudo constraints: if Speed > Speedlimit then +1]
FROM RawSpeedLane AS sl
INNER JOIN
SpeedLaneSearchData AS slsd ON slsd.ParentId = sl.Id
INNER JOIN
Projects AS p ON p.ProjectId = sl.ProjectId
WHERE sl.ProjectId = 72
GROUP BY RoundedDate;
Die SQL oben sehen, ist gibt mir alle Daten, die ich brauche, EXECPT für die letzte Spalte.
Diese letzte Spalte soll die Anzahl der Datensätze sein, die bestimmte Kriterien erfüllen. Der einzige Weg, den ich gefunden habe, um dies erfolgreich zu tun, ist eine Unterabfrage zu erstellen ... Cool? Okay, aber das Problem ist, dass die Unterabfrage 4 Minuten dauert, um gut zu laufen ... Ich sauge an SQL: P Egal wie viele verschiedene Wege ich versucht habe, es zu schreiben, es dauert immer noch.
Hier ist die lange, aber funktionierende Version.
SELECT DISTINCT RoundedDate,
Count() AS Count,
CAST (avg(Speed) AS INT) AS AverageSpeed,
(
SELECT count()
FROM RawSpeedLane AS slr
WHERE slr.ProjectId = 72 AND
datetime(((strftime('%s', Start) - (strftime('%M', Start) * 60 + strftime('%S', Start)))), 'unixepoch') = sl.RoundedDate AND
Speed > p.SpeedLimit
)
AS SpeederCount
FROM SpeedLaneReportDataView AS sl
INNER JOIN
Projects AS p ON p.ProjectId = sl.ProjectId
WHERE sl.ProjectId = 72
GROUP BY RoundedDate;
ich zur Zeit habe gerade versucht, dies für die letzte Spalte
(select Count() where sl.Speed > p.SpeedLimit)
aber wie erwartet, ich habe 1 und 0 im nicht wirklich sicher, was hier zu tun. Hinweise oder Hilfe, die mich in die richtige Richtung führen, werden sehr geschätzt.
Arbeitete wie ein Charme. Vielen Dank für Ihre Antwort. –