【问题标题】:How to get the count of field of last 1 week ,last 1 month ,yesterday如何获取过去 1 周、过去 1 个月、昨天的字段计数
【发布时间】:2015-01-31 07:13:20
【问题描述】:

我想统计今天、昨天、上周、上个月的客户城市

我想要这样的结果

    city today yesterday lastweek lastmnth
     1     23     2         12         12

我的表结构如下所示

客户

    c_id  city_id  c_name            currentdate
     1      1       Rama             2015-01-30 09:43:17
     2      1       kavitha          2015-04-30 09:43:17

城市

    city_id   city_name
     1          hyd
     2          Wgl

我用下面的方法试过了。

 select c.c_city, (select count(cr_id)  as lastmonth  from customer 
  where currentdate > DATE(NOW() - INTERVAL 30 DAY) )) from customers as c
  left join cities as ci on c.city_id = ci.city_id group by c.city_id

【问题讨论】:

    标签: mysql datediff


    【解决方案1】:

    与此类似:

    SELECT city_id as city,
    SUM(CASE WHEN LEFT(currentdate,10) = LEFT(NOW(),10) THEN 1 ELSE 0 END) as today,
    SUM(CASE WHEN LEFT(currentdate,10) = LEFT(NOW()-INTERVAL 1 DAY,10) THEN 1 ELSE 0 END) as yesterday,
    SUM(CASE WHEN currentdate > NOW()-INTERVAL 7 DAY THEN 1 ELSE 0 END) as lastweek,
    SUM(CASE WHEN currentdate > NOW()-INTERVAL 30 DAY THEN 1 ELSE 0 END) as lastmnth
    FROM customers GROUP BY city_id
    

    对于上周和上个月,我假设您的意思是 7 天前和 30 天前。但是,如果您需要前一周和上个月的数据(在这种情况下这对我来说没有多大意义),您可能需要重写间隔。

    【讨论】:

    • 非常感谢。这对我很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2022-07-07
    • 2013-05-07
    相关资源
    最近更新 更多