SQL需要按多列对数据进行分组

时间:2012-09-27 19:14:45

标签: sql sql-server group-by

我正在尝试将table1中的数据转换为table2

表1

UserId  Date1
1       9/26/2012
2       9/26/2012
1       9/26/2012
1       9/26/2012
2       9/26/2012
2       9/27/2012
2       9/27/2012
1       9/27/2012

表2

UserId  Date1       recCount
1       9/26/2012  3
2       9/26/2012  2
1       9/27/2012  2
2       9/27/2012  1

这显然不起作用,但不确定从何处开始:

SELECT 
    UserId,
    Date1,
    Count(*)
FROM table1
GROUP BY UserId, Date1

2 个答案:

答案 0 :(得分:0)

看起来您只显示包含时间的列的日期。您可以从SQL Server 2008开始使用CAST AS DATE来删除时间部分。

SELECT 
    UserId,
    CAST(Date1 as date) Date1,
    Count(*) RecCount
FROM table1
GROUP BY UserId, CAST(Date1 as date)

如果按transforming into表示将数据放入另一个表格,那么

INSERT table2
SELECT 
    UserId,
    CAST(Date1 as date),
    Count(*)
FROM table1
GROUP BY UserId, CAST(Date1 as date)

答案 1 :(得分:-2)

原帖回答了我问的问题。我的查询中有一个where语句,不属于那里。