2012-09-27 60 views
-2

我试图从表1数据转变成表2SQL需要对数据进行分组由多个列

表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 
+5

这不起作用?什么不工作? – LittleBobbyTables

+2

是否在您的Date1列上有时间? – msmucker0527

+3

请解释“不起作用”是什么意思,为什么这很明显。对于给定的数据,你似乎正在执行你想要的查询。 –

回答

-2

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

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)