选择每个特定日期的计数

时间:2017-09-17 15:33:56

标签: sql sql-server datetime

我有以下需要: 我需要计算从所有日期激活每个ID的次数。

我们说这个表看起来像这样:

tbl_activates
PersonId int,
ActivatedDate datetime

结果集应如下所示:

counted_activation | ActivatedDate
5             | 2009-04-30
7             | 2009-04-29
5             | 2009-04-28
7             | 2009-04-27

......等等

任何人都知道如何以最好的方式做到这一点?日期格式如下' 2011-09-06 15:47:52.110',我只需要与没有时间的日期联系。 (每个日期的摘要)

3 个答案:

答案 0 :(得分:0)

你可以使用count(distinct ..)

如果ActivatedDate是datetime,您可以获得日期部分

  select  Cast(ActivatedDate AS date), count(distinct id)
  from my_table 
  group by  ast(ActivatedDate AS date)

答案 1 :(得分:0)

您可以使用to_char函数删除日期之后的时间

    select count(*) counted_activation, 
to_char(activatedDate,"yyyy-mm-dd") ActDate
    from table1
    group by to_char(activatedDate,"yyyy-mm-dd");

答案 2 :(得分:0)

使用'GROUP BY'和'COUNT'。使用CONVERT方法将datetime转换为仅日期

  SELECT CONVERT(DATE,activatedate), COUNT(userId)
  FROM [table]
  GROUP BY  CONVERT(DATE,InvoiceDate)