MySql 小于带有 Group By 子句的数量

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

相关文章:

java - 优化帮助 : SQL Query to display minimum prices per country

mysql - MYSQL 中的大小写敏感性和索引

c# - 将负值插入 SQL Server 小数列会引发错误

mysql - 使用 SQL 计算特定发生次数

sql - 我们如何对 SQL Server 2008 中的所有列名使用 ISNULL?

c# - 基于 SQL 的存储与 SVN

SQL在行之间有条件地删除

PHP/MYSQL 填充按查询结果排序的下拉列表

php - 尝试在 vTiger 中的 Leads 和 Quotes 之间添加相关列表

mysql - 清理 MySQL 存储过程参数