如何在Sql Server中对列进行分组选择
我是sqlserver的新手。我有一个名为UserTransactions的表如何在Sql Server中对列进行分组选择,sql,sql-server,Sql,Sql Server,我是sqlserver的新手。我有一个名为UserTransactions的表 WinnerWeek UserGSM w1 1000000001 w2 1000000002 w2 1000000003 w2 1000000002 w2 1000000003 w2 1000000003 w2 1000000003 w3 100
WinnerWeek UserGSM
w1 1000000001
w2 1000000002
w2 1000000003
w2 1000000002
w2 1000000003
w2 1000000003
w2 1000000003
w3 1000000004
w3 1000000005
w3 1000000005
w3 1000000005
w4 1000000005
w4 1000000002
我希望生成如下所示的输出。但是,我该怎么做呢。如果可能的话,请给我sql查询,谢谢
WinnerWeek UserGSM WeeklyCount
w1 1000000001 1
w2 1000000002 2
w2 1000000003 4
w3 1000000004 1
w3 1000000005 3
w4 1000000005 1
w4 1000000002 1
您可以直接分组并获得此计数:
Select WinnerWeek, SmsSending, Count(*) from yourtable
group by WinnerWeek, SmsSending
分组依据
和订购依据
将协同工作,为您获取此信息
SELECT
winnerweek
,usergsm
,COUNT(*) AS weeklycount
FROM UserTransactions
GROUP BY
winnerweek
,usergsm
ORDER BY winnerweek
请阅读以下内容,以便您能够理解这一点
分组人:
订购人:
“Id”应该是表中的主键到目前为止,您是否尝试过任何方法来解决此问题?没有,此查询与@kannan相同。您能在SQLFIDLE中完成吗?@JohnLin-根据您的数据和此查询,计数列不应仅得到1。
SELECT
winnerweek
,usergsm
,COUNT(*) AS weeklycount
FROM UserTransactions
GROUP BY
winnerweek
,usergsm
ORDER BY winnerweek
SELECT
WinnerWeek
,usergsm,count(WinnerWeek) as WeeklyCount
FROM usertransactions
GROUP BY WinnerWeek,usergsm