子查询示例帮助

时间:2016-02-01 19:23:50

标签: mysql sql sum

SUM

有问题

表格

ID     date        type price limit
1   01/02/2016      1     10    3
2   02/02/2016      1     15    2
3   03/02/2016      1     10    0
4   01/02/2016      2     10    2
5   02/02/2016      2     20    2
6   03/02/2016      2     30    2

$sql = SELECT type,SUM(price) as total from table **where limit>0**  GROUP BY type

Normaly会回来:

1 35
2 60

但我需要,如果类型1有任何零限制,不要计算。

***2 60***

我需要使用子查询吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT `type`, SUM(price) AS total 
FROM table   
GROUP BY `type`
HAVING COUNT(CASE WHEN `limit` = 0 THEN 1 END) = 0

HAVING子句会过滤掉包含至少一行type行的所有limit=0个群组。

Demo here