MySql小于带有Group By子句的数量
在报表表中,每天有多条日期、时间和数量记录。我想分别为每天的记录选择小于3的数量总和 到目前为止,我有:MySql小于带有Group By子句的数量,mysql,sql,Mysql,Sql,在报表表中,每天有多条日期、时间和数量记录。我想分别为每天的记录选择小于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 ----------
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-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)
选择日期(日期时间)作为日期时间
,总和(数量)为数量
来自报告
其中日期和时间介于“”和“”之间
按日期分组(日期和时间)
在数据特定计数(数量)之前,总和(数量)小于3
查看在查询末尾包含sum(quantity)<3的子句readd注意在datetime中使用between
。例如,请参见。date\u time>='2017-08-01'和date\u time<'2018-09-01'
,根据@HoneyBadger),选择后如何计算数量?正如我在上面演示的,在选择之后,我是否可以在没有日期和时间的情况下得到结果为4?如果您仍然希望求和并返回所需输出的单行,那么您必须使用子查询。先试试你自己,如果你不知道,请回复。
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)