SQL 服务器 - 计算每个项目的日期并分组排列

SQL Server - Counting dates per item and arranging in groups

我有一个输出 ID 和日期的查询,例如:

[ID]      [DateValue]
A111111   2015-01-01
A111111   2015-01-02
A111111   2015-01-03
A111111   2015-01-04
A222222   2015-01-01
A222222   2015-01-02
A333333   2015-01-01
A333333   2015-01-02
A333333   2015-01-03

从这个结果集中,我需要确定一个、两个和大于两个日期组来对每个 ID 的计数进行分组。例如,对于上面的数据,输出需要类似于以下内容:

[OneDay]  [TwoDays]  [MoreThanTwoDays]
 3         3          2

我需要调整这个吗?

提前致谢!

CREATE TABLE #test
    (
      id VARCHAR(100) ,
      [DateValue] DATE
    );
INSERT  INTO #test
VALUES
        ( 'A111111', '2015-01-01' ),
        ( 'A111111', '2015-01-02' ),
        ( 'A111111', '2015-01-03' ),
        ( 'A111111', '2015-01-04' ),
        ( 'A222222', '2015-01-01' ),
        ( 'A222222', '2015-01-02' ),
        ( 'A333333', '2015-01-01' ),
        ( 'A333333', '2015-01-02' ),
        ( 'A333333', '2015-01-03' );

SELECT
    SUM(CASE WHEN qty = 1 THEN 1
             ELSE 0
        END) AS [OneDay] ,
    SUM(CASE WHEN qty = 2 THEN 1
             ELSE 0
        END) AS [TwoDays] ,
    SUM(CASE WHEN qty > 2 THEN 1
             ELSE 0
        END) AS [MoreThanTwoDays]
FROM
    (
      SELECT
        COUNT(*) AS qty
      FROM
        #test
      GROUP BY
        [DateValue]
    ) a;