我需要按年分組一個表,並將所有可能的類型(未知)與動態列名彙總。組和動態列名加總和
樣品表:
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
我需要按年分組一個表,並將所有可能的類型(未知)與動態列名彙總。組和動態列名加總和
樣品表:
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
,你可以使用這樣的查詢組,總和類型 -
SELECT year, type, COUNT(type) FROM table_name GROUP BY year, type;
它給出了另一個結果集,但有你想要的數據。
我最終採用這種方法。 – primalforma
SELECT year,COUNT(type) from tableName GROUP BY(type)
嘗試一個
它不是動態列名稱(AKA:pivot)。 –
SOL不是爲此設計的,其結果可能永遠不會爲每行有不同數量的列。
我認爲最好的方法是通過示例來連接信息來改變結果集的設計。或者有固定數量的.column由null或空值填充。
另一方面,如果您的語言允許每行的動態列數,則可以通過編程來實現。
我試過基本的IF語句,但我需要能夠處理「未知」數量的類型/列。即: 「SELECT Year,SUM(IF(Type =='a',1,0))AS Type_a FROM TABLE GROUP BY Year」不會這樣做。我已經看到了一些示例,但它們都處理「已知」數量的變量類型/列 – primalforma