在报表中,每天有多个日期时间和数量记录。我想分别为每天的记录选择数量总和小于3的。
到目前为止我有这个:
SELECT
DATE(date_time) AS date_time,
SUM(quantity) AS quantity
FROM report
WHERE date_time BETWEEN ? AND ?
AND quantity < 3
GROUP BY DATE(date_time)
表示例:
| date_time | quantity
-------------------------
| 2017-08-12 09:11:51 | 1
| 2017-08-12 10:12:51 | 1
| 2017-08-12 12:45:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 12:45:51 | 1
| 2017-08-13 13:57:51 | 1
| 2017-08-14 14:23:51 | 1
| 2017-08-14 16:34:51 | 1
| 2017-08-15 16:21:51 | 1
| 2017-08-16 14:31:51 | 1
选择后:
| date_time | quantity
-------------
| 2017-08-14 | 2
| 2017-08-15 | 1
| 2017-08-16 | 1
我怎样才能做到这一点?
最佳答案
尝试一下:您需要使用HAVING
来过滤组,而WHERE
过滤行
SELECT DATE(date_time) as date_time
,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3 --Before it was data specific COUNT(quantity)
关于MySql 小于带有 Group By 子句的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48149024/