SQL:查询以对项目进行分类

时间:2015-05-24 16:36:03

标签: sql sql-server

我有表product

area  productname   count
a1     p1            5
a2     p2            6
a1     p2            9
a2     p3            8
a1     p3            1

我希望它像这样;如果在SQL中可行,我正在使用SQL Server

a1     count(p1)    count (p2)  count(p3)
a2     count(p1)    count (p2)  count(p3)
.
.
an     count(p1)    count (p2)  count(p3)

1 个答案:

答案 0 :(得分:2)

对于您尝试解决的特定问题,以下查询将起作用。 Evaldas建议的链接也为动态旋转提供了一个很好的例子。

select area, p1, p2, p3
from
(select area, productname, counter from test) t
pivot 
(
  min(counter)
  for productname in (p1, p2, p3)
) as piv
order by area;

示例:http://sqlfiddle.com/#!3/2ef59/19