单个查询以获取多个日期的数据

时间:2014-04-28 07:57:43

标签: mysql

我想获取1到90天内添加的商店总数。我想在7天,14天,30天,60天和90天内显示他们添加的商店数量。我想通过使用1计数查询来获取所有这些。 我正在使用以下查询。如果我以这种方式使用查询,那么我必须多次编写查询。

SEELCT COUNT(storeid) AS totalStores FROM example 
WHERE DATEDIFF(CURDATE(), date_created)

1 个答案:

答案 0 :(得分:1)

你可以把它作为一个支点:

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,所以总结一个条件可以计算出它的真实次数。

子查询用于使代码更具可读性并添加一点性能(对datediff()的调用每行只进行一次)。