Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql HAVING子句中的多重聚合函数_Mysql_Sql_Count - Fatal编程技术网

Mysql HAVING子句中的多重聚合函数

Mysql HAVING子句中的多重聚合函数,mysql,sql,count,Mysql,Sql,Count,由于我查询的性质,我有计数为3的记录,这也符合计数为2的条件,依此类推。我想知道是否可以查询“计数大于x且小于7”?我怎么能写这个。这是我目前的代码 GROUP BY meetingID HAVING COUNT( caseID )<4 按会议ID分组 按会议ID分组计数(案例ID) 计数(caseID)2 对于您的示例查询,唯一可能大于2小于4的值是3,因此我们简化了: GROUP BY meetingID HAVING COUNT(caseID) = 3 在一般情况下: GROU

由于我查询的性质,我有计数为3的记录,这也符合计数为2的条件,依此类推。我想知道是否可以查询“计数大于x且小于7”?我怎么能写这个。这是我目前的代码

GROUP BY meetingID
HAVING COUNT( caseID )<4
按会议ID分组
按会议ID分组计数(案例ID)

计数(caseID)<4且计数(caseID)>2

对于您的示例查询,唯一可能大于2小于4的值是3,因此我们简化了:

GROUP BY meetingID
HAVING COUNT(caseID) = 3

在一般情况下:

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

不需要进行两次检查,为什么不只检查计数=3:

GROUP BY meetingID
HAVING COUNT(caseID) = 3
如果要使用多个检查,则可以使用:

GROUP BY meetingID
HAVING COUNT(caseID) > 2
 AND COUNT(caseID) < 4
按会议ID分组
计数(案例ID)>2
和计数(caseID)<4
像这样的东西

HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4
计数(caseID)>2
和计数(caseID)<4

我在这里写下完整的查询,这将消除您所有的疑问

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
欢迎光临!你最好解释一下你做了什么。你能在回答中包括这一点吗?谢谢
GROUP BY meetingID
HAVING COUNT(caseID) > 2
 AND COUNT(caseID) < 4
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
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