【问题标题】:Get Count of users based on date根据日期获取用户数
【发布时间】:2014-12-01 18:45:39
【问题描述】:

我有一个简单的表来存储用户 ID、用户名、电子邮件、注册日期...

RegistrationDate 是 DateTime 数据类型

当我要获取每个日期的用户数时,它会为每一行得到 1,因为它每一行都有一个唯一的 dateTime 戳。

SELECT DATEPART(dd, RegistrationDate) AS DD, COUNT(userID)   
FROM USER_Table 
GROUP BY RegistrationDate 
order by RegistrationDate DESC

如果我有 100 个注册用户,ABove 查询每 100 行获取一次。

我想根据日期进行计数。我尝试了不同的方法,但似乎没有任何效果。

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:

    试试这个:

    SELECT Cast(RegistrationDate AS DATE),
           Count(userID)
    FROM   User_Table
    GROUP  BY Cast(RegistrationDate AS DATE)
    ORDER  BY Cast(RegistrationDate AS DATE)DESC 
    

    【讨论】:

      【解决方案2】:

      您需要按CAST(RegistrationDate as Date)分组

      SELECT CAST(RegistrationDate as Date) AS [Date], COUNT(userID)   
      FROM USER_Table 
      GROUP BY CAST(RegistrationDate as Date)
      order by CAST(RegistrationDate as Date) DESC
      

      【讨论】:

      • 这将按天分组,而不是按日期分组。所以 10 月 1 日将与 11 月 1 日、12 月 1 日等归为一组。
      • 还是不行。您还需要按列转换订单
      【解决方案3】:
      SELECT cast(RegistrationDate as Date) AS DD, COUNT(userID)   
      FROM USER_Table 
      GROUP BY cast(RegistrationDate as Date)
      order by cast(RegistrationDate as Date) DESC
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-03
        • 2021-07-25
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多