Kann mir jemand mit einer SQL-Abfrage in Apache Derby SQL helfen, um eine "einfache" Anzahl zu erhalten.SQL-Aggregat Abfrage Frage
eine Tabelle ABC gegeben, der so aussieht ...
id a b c 1 1 1 1 2 1 1 2 3 2 1 3 4 2 1 1 ** 5 2 1 2 ** ** 6 2 2 1 ** 7 3 1 2 8 3 1 3 9 3 1 1
Wie kann ich eine Abfrage schreiben, eine Zählung, wie kann verschiedene Werte von ‚a‘ beide = 1 und c (b müssen erhalten = 2) AND (b = 2 und c = 1), um das korrekte Ergebnis von 1 zu erhalten (die zwei markierten Zeilen entsprechen den Kriterien und beide haben einen Wert von a = 2, es gibt nur einen eindeutigen Wert von a in dieser Tabelle) entsprechen den Kriterien)
Das schwierige Bit ist, dass (b=1 and c=2) AND (b=2 and c=1)
sich offensichtlich gegenseitig ausschließen, wenn sie auf eine einzelne Zeile angewendet werden. .. also wie verwende ich diesen Ausdruck über mehrere Zeilen mit unterschiedlichen Werten für eine?
Diese Abfragen sind falsch, aber zu veranschaulichen, was ich versuche zu tun ...
SELECT DISTINCT COUNT(a) WHERE b=1 AND c=2 AND b=2 AND c=1 ...
.. (0) nicht gehen als sich gegenseitig ausschließende
SELECT DISTINCT COUNT(a) WHERE b=1 AND c=2 OR b=2 AND c=1 ...
.. (3) wird mir die falsche Ergebnis.
SELECT COUNT(a) (CASE WHEN b=1 AND c=10 THEN 1 END) FROM ABC WHERE b=2 AND c=1
.. (0) nicht als sich gegenseitig ausschließende
Cheers, Phil gehen.
Ist (a, b, c) einzigartig? Mit anderen Worten, kann es zwei Zeilen mit unterschiedlichen IDs geben, aber die gleichen Werte von a, b und c? –