Count distinct-Werte mit OVER(PARTITION BY id)
Ist es möglich, count distinct-Werte in Verbindung mit window-Funktionen, wie OVER(PARTITION BY id)
? Derzeit meine Abfrage lautet wie folgt:
SELECT congestion.date, congestion.week_nb, congestion.id_congestion,
congestion.id_element,
ROW_NUMBER() OVER(
PARTITION BY congestion.id_element
ORDER BY congestion.date),
COUNT(DISTINCT congestion.week_nb) OVER(
PARTITION BY congestion.id_element
) AS week_count
FROM congestion
WHERE congestion.date >= '2014.01.01'
AND congestion.date <= '2014.12.31'
ORDER BY id_element, date
Jedoch, wenn ich versuche, um die Abfrage auszuführen, bekomme ich folgenden Fehler:
"COUNT(DISTINCT": "DISTINCT is not implemented for window functions"
InformationsquelleAutor user007 | 2014-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht, wie die Fehlermeldung besagt,
DISTINCT
ist nicht implementiert, die mit windows-Funktionen. Aplying info aus dieser link in Ihrem Fall könnten Sie so etwas wie:Je nach situation könnten Sie auch mit einer Unterabfrage direkt in
SELECT
-Liste:InformationsquelleAutor Simo Kivistö
Ich finde, dass der einfachste Weg ist die Verwendung einer Unterabfrage/CTE und konditionellen:
InformationsquelleAutor Gordon Linoff