45

私のクエリの性質上、カウントが3のレコードがあり、カウントが2の基準にも適合します。'xより多く7未満のカウントを持つ'をクエリすることは可能でしょうか?どうすればこれを書くことができますか。これが私の現在のコードです。

GROUP BY meetingID
HAVING COUNT( caseID )<4

のようなものが欲しいのですが

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

そうすれば、正確に3つしかカウントされません

4

6 に答える 6

91
GROUP BY meetingID
HAVING COUNT(caseID) < 4 AND COUNT(caseID) > 2
于 2013-02-07T16:39:18.577 に答える
11

2つのチェックを行う必要はありません。カウント=3をチェックしないのはなぜですか。

GROUP BY meetingID
HAVING COUNT(caseID) = 3

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

GROUP BY meetingID
HAVING COUNT(caseID) > 2
 AND COUNT(caseID) < 4
于 2013-02-07T16:39:39.797 に答える
4

クエリの例では、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
于 2013-02-07T16:39:32.233 に答える
3

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

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
于 2014-09-02T08:04:12.133 に答える
2

このようなもの?

HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4
于 2013-02-07T16:41:49.123 に答える
-1
select CUSTOMER_CODE,nvl(sum(decode(TRANSACTION_TYPE,'D',AMOUNT)),0)) DEBIT,nvl(sum(DECODE(TRANSACTION_TYPE,'C',AMOUNT)),0)) CREDIT,
nvl(sum(decode(TRANSACTION_TYPE,'D',AMOUNT)),0)) - nvl(sum(DECODE(TRANSACTION_TYPE,'C',AMOUNT)),0)) BALANCE from TRANSACTION   
GROUP BY CUSTOMER_CODE
having nvl(sum(decode(TRANSACTION_TYPE,'D',AMOUNT)),0)) > 0
AND (nvl(sum(decode(TRANSACTION_TYPE,'D',AMOUNT)),0)) - nvl(sum(DECODE(TRANSACTION_TYPE,'C',AMOUNT)),0))) > 0
于 2014-03-11T06:42:53.760 に答える