无法正确构造SQL Pivot查询

时间:2013-08-14 07:45:05

标签: sql sql-server-2008-r2

我有一组数据(我将大部分数据视为宽表),如果看起来像这样;

team_a, 10, foo, ..., UK
team_a, 120, bar, ..., US
team_a, 1, abc, ..., DE
team_a, 9, def, ..., ES
team_a, 4, wsd, ..., AUS
team_b, 2, cvb, ..., ES
team_b, 5, klh, ..., UK
team_b, 17, wer, ..., AUS

即每个团队(我们有很多团队)处理来自世界不同地区的物品。目前,这些数据都被提取到一个庞大的excel电子表格中进行分析。但是我被问到是否可以将数据整理成行,以便我得到以下内容

Team       UK              US          ES   ... 
------------------------------------------------
team_a     10   foo        120   bar   9  def ...

最初我以为我可以使用数据透视表,但是我尝试的时间越长,看起来就越不可能(不太相信Pivot现在是我正在努力实现的正确操作)。从根本上说,我试图根据他们的团队和国家来订购和加入行。

那么,如果我可以在数据透视表中执行此操作,那么下面的SQL有什么问题?

SELECT TeamId, g_1, g_2, [UK] as UK, [US] as US, [ES]
as ES, [DE] as DE, [AUS] as AUS

FROM
(SELECT TeamId,g_1, g_2, CountryName FROM SectionG) g
PIVOT
(COUNT(TeamId) FOR CountryName IN ([UK], [US], [ES],
[DE], [AUS])) as pvt
ORDER BY pvt.TeamId

0 个答案:

没有答案