web-dev-qa-db-ja.com

HAVING句の複数の集約関数

私のクエリの性質上、カウント2の基準にも適合する、カウント3のレコードがあります。 「xを超え7未満のカウント」をクエリすることは可能ですか?どうやってこれを書くことができますか。これが私の現在のコードです。

GROUP BY meetingID
HAVING COUNT( caseID )<4

次のようなものが欲しい

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

そうすれば、正確に3だけカウントされます

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

2つのチェックを行う必要はありません。なぜcount = 3だけをチェックしないのですか?

GROUP BY meetingID
HAVING COUNT(caseID) = 3

複数のチェックを使用する場合は、次を使用できます。

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

クエリの例では、2より大きく4より小さい値のみが3なので、次のように単純化します。

GROUP BY meetingID
HAVING COUNT(caseID) = 3

一般的な場合:

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

または(おそらく読みやすい?)、

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

ここであなたのすべての疑問をクリアする完全なクエリを書いています

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

このようなもの?

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