Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多列求和_Sql - Fatal编程技术网

Sql 多列求和

Sql 多列求和,sql,Sql,嗨,我有一张这样的桌子 Year Column1 column2 column3 2015 A B C 2015 D A B 2016 F C A 我需要能够在整个列中求出某个子集出现的次数。我希望汇总表是这样的 Year Letter count 2015 A 2 2016 A

嗨,我有一张这样的桌子

Year Column1 column2 column3
 2015     A               B             C
 2015     D               A             B
 2016     F               C              A
我需要能够在整个列中求出某个子集出现的次数。我希望汇总表是这样的

Year Letter count
2015  A        2
2016  A        1
2015  B        2

如果有人能帮我,我会非常感激

您可以使用
union all
将数据分开,然后使用
group by
将数据重新组合在一起:

select year, letter, count(*) 
from ((select year, column1 as letter from t) union all
      (select year, column2 as letter from t) union all
      (select year, column3 as letter from t) 
     ) yc
group by year, letter;
对于一组特定的字母,在('a','B')中添加一个
where letter
子句