programing

HAVING 절의 다중 집계 함수

newsource 2022. 9. 25. 00:26

HAVING 절의 다중 집계 함수

질문의 특성상 카운트 3의 레코드가 있으며, 카운트 2의 기준에도 부합합니다.x 이상 7 미만으로 세는 것을 질문할 수 있을까요?어떻게 써야 할까요?이게 제 현재 코드입니다.

GROUP BY meetingID
HAVING COUNT( caseID )<4

뭐랄까...

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

그렇게 하면 딱 3개만 계산될 거야

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

두 가지 검사를 수행할 필요가 없습니다. 카운트 = 3만 검사하면 됩니다.

GROUP BY meetingID
HAVING COUNT(caseID) = 3

여러 개의 체크를 사용하는 경우 다음을 사용할 수 있습니다.

GROUP BY meetingID
HAVING COUNT(caseID) > 2
 AND COUNT(caseID) < 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

여기 모든 의심을 풀 수 있는 완전한 질문을 씁니다.

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

이런 거?

HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4
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

언급URL : https://stackoverflow.com/questions/14756222/multiple-aggregate-functions-in-having-clause