我想获取 1 到 90 天内添加的商店总数。我想显示 7 天、14 天、30 天、60 天和 90 天添加的商店数量。我想通过使用 1 个计数查询来获取所有这些。 我正在使用以下查询。如果我以这种方式使用查询,那么我必须多次编写查询。
SEELCT COUNT(storeid) AS totalStores FROM example
WHERE DATEDIFF(CURDATE(), date_created)
最佳答案
你可以把它作为一个枢轴:
SELECT
sum(days <= 7) AS total7,
sum(days <= 14) AS total14,
sum(days <= 30) AS total30,
sum(days <= 60) AS total60,
sum(days <= 90) AS total90
FROM (
SELECT DATEDIFF(CURDATE(), date_created) as days
FROM example
) x
sum(condition)
语法有效(在 mysql 中),因为 true 为 1,false 为 0,因此对条件求和可以清楚地计算其 true 的次数。
子查询用于使代码更具可读性并增加一点性能(每行仅调用一次datediff()
)。
关于mysql - 单个查询获取多个日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335538/