it-swarm.com.de

Mehrere Aggregatfunktionen in der HAVING-Klausel

Aufgrund der Art meiner Anfrage habe ich Datensätze mit einer Anzahl von 3, die auch die Kriterien der Anzahl von 2 und so weiter erfüllen würden. Ich habe mich gefragt, ob es möglich ist, abzufragen, ob mehr als x und weniger als 7 gezählt wurden. Wie könnte ich das schreiben. Hier ist mein aktueller Code.

GROUP BY meetingID
HAVING COUNT( caseID )<4

Ich hätte gerne etwas wie

GROUP BY meetingID
HAVING COUNT( caseID )<4 AND >2

Auf diese Weise würde es nur genau 3 zählen

26
blarg
GROUP BY meetingID
HAVING COUNT(caseID) < 4 AND COUNT(caseID) > 2
59
Trent Earl

Es sind keine zwei Überprüfungen erforderlich. Überprüfen Sie einfach, ob count = 3 ist:

GROUP BY meetingID
HAVING COUNT(caseID) = 3

Wenn Sie die Mehrfachprüfungen verwenden möchten, können Sie Folgendes verwenden:

GROUP BY meetingID
HAVING COUNT(caseID) > 2
 AND COUNT(caseID) < 4
8
Taryn

Für Ihre Beispielabfrage ist der einzig mögliche Wert größer als 2 und kleiner als 4 3, daher vereinfachen wir Folgendes:

GROUP BY meetingID
HAVING COUNT(caseID) = 3

In Ihrem allgemeinen Fall:

GROUP BY meetingID
HAVING COUNT(caseID) > x AND COUNT(caseID) < 7

Oder (möglicherweise leichter zu lesen?),

GROUP BY meetingID
HAVING COUNT(caseID) BETWEEN x+1 AND 6
3
lc.

Hier schreibe ich eine vollständige Abfrage, mit der Sie alle Zweifel klären können

SELECT BillingDate,
       COUNT(*) AS BillingQty,
       SUM(BillingTotal) AS BillingSum
FROM Billings
WHERE BillingDate BETWEEN '2002-05-01' AND '2002-05-31'
GROUP BY BillingDate
HAVING COUNT(*) > 1
AND SUM(BillingTotal) > 100
ORDER BY BillingDate DESC
1
Mukesh Kumar

Etwas wie das?

HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4
1
Achrome