Подтвердить что ты не робот

Множественные агрегатные функции в предложении HAVING

Из-за характера моего запроса у меня есть записи со счетом 3, которые также соответствовали бы критериям подсчета 2 и так далее. Мне было интересно, можно ли запросить "с числом больше х и меньше 7"? Как я мог написать это. Вот мой текущий код.

GROUP BY meetingID
HAVING COUNT( caseID )<4

Мне хотелось бы что-то вроде

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

Таким образом, он будет считать только 3

4b9b3361

Ответ 1

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

Ответ 2

Нет необходимости делать две проверки, почему бы просто не проверить счетчик = 3:

GROUP BY meetingID
HAVING COUNT(caseID) = 3

Если вы хотите использовать несколько проверок, вы можете использовать:

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

Ответ 3

Для вашего примера запроса единственное возможное значение больше 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

Ответ 4

Что-то вроде этого?

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

Ответ 5

Здесь я пишу полный запрос, который очистит все ваши сомнения.

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

Ответ 6

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