具有动态列名称的分组和总和

时间:2011-10-21 03:39:45

标签: mysql sql pivot aggregate-functions

我需要按年份对表格进行分组,并使用动态列名称SUM所有可能的类型(未知)。

样本表:

Type|Year
a    2001
a    2001
c    2002
b    2002
c    2003
a    2003
z    2003

示例结果:

Year: 2001, Type_a: 2
Year: 2002, Type_c: 1, Type_b: 1
Year: 2003, Type_c: 1, Type_a: 1, Type_z: 1

3 个答案:

答案 0 :(得分:1)

您可以使用类似的查询对类型进行分组和求和 -

SELECT year, type, COUNT(type) FROM table_name GROUP BY year, type;

它提供了另一个结果集,但是包含您想要的数据。

答案 1 :(得分:0)

SELECT year,COUNT(type) from tableName GROUP BY(type)

尝试一下

答案 2 :(得分:0)

SOL不是为此而设计的,每行的结果永远不会有不同数量的列。

我认为最好的方法是通过示例连接信息来更改结果集的设计。或者使用空值或空值填充固定数量的.column。

另一方面,如果您的语言允许每行的动态列数,您可以以编程方式执行此操作。