[英]MySQL PHP select rows count in date range
我有一个名为TABLE1的产品订单的MySQL表。
日期表示已购买日期
该表有其他列,目前没有影响力。
PRODUCT_ID | DATE | other columns
3 |2018-02-01 | other values
3 |2018-02-03 | other values
3 |2018-02-07 | other values
3 |2018-02-07 | other values
3 |2018-03-02 | other values
我知道第一次订购产品3是2018-02-01
SELECT DATE FROM TABLE1 WHERE PRODUCT_ID = '3' ORDER BY DATE ASC LIMIT 1
如何在 2018-02-01和2019-03-16(今天) 范围内选择每天的产品订单数量,以便我可以获得这样的表格:
DATE | ORDERS_PER_DAY
2018-02-01 | 1
2018-02-02 | 0
2018-02-03 | 1
...
2018-02-07 | 2
...
2018-03-02 | 1
...
2018-03-15 | 0
2018-03-16 | 0
感谢帮助!
您只需使用GROUP BY子句即可。
SELECT `DATE`, COUNT(`PRODUCT_ID`) AS ORDERS_PER_DAY
FROM TABLE1
WHERE `DATE` BETWEEN '2018-02-01' AND CURDATE()
GROUP BY `DATE`
此查询将导致过滤所需日期范围内的记录,然后在有数据的每一天对其进行分组。
我的语法可能不完全正确,但您可以使用GROUP BY
子句尝试这样的事情。
SELECT DATE, COUNT(*) AS ORDERS_PER_DAY
FROM TABLE1
GROUP BY DATE, PRODUCT_ID
HAVING PRODUCT_ID = '3'
你可以在这里阅读更多相关信息: https : //dev.mysql.com/doc/refman/8.0/en/group-by-handling.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.