繁体   English   中英

MySQL PHP选择行数在日期范围内

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM