mysql - 子查询示例帮助

标签 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

通常会返回:

1 35
2 60

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

***2 60***

我需要使用子查询吗?

最佳答案

试试这个:

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

HAVING 子句将过滤掉至少包含 1 个 limit=0 行的任何 type 组。

Demo here

关于mysql - 子查询示例帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35138587/

相关文章:

SQL:使用一个表中的数据将新数据插入到另一个表中

sql - Oracle列值修改

Matlab:按升序计数出现次数而不是累积的命令?

java - 如何使用格式化程序格式化二维数组之和?

php - 将 IF 语句设置为写入或不写入 MySQL 中的列

mysql - 带连接的聚合函数

sql - mySQL返回每个类别的前5名

python - 通过API R1Soft CDP恢复MySQL数据库

sql - MSSQL 中 ISNULL() 的奇怪行为

arrays - 对于单精度数组,如何使 Fortran SUM 命令结果超过 2^24