当前位置: 代码迷 >> 报表 >> 求一统计的SQL语句解决方案
  详细解决方案

求一统计的SQL语句解决方案

热度:493   发布时间:2016-05-05 08:13:28.0
求一统计的SQL语句
有一个表,info表的内容大概如下
col1 col2 col3
1 2 3
1 3
4 1 2

现在就想统计下,在col1,col2,col3这3列的值的统计,但这3列的值是共同意义的
可能表达起来比较难,我就用结果来说明下吧
例如上面那个表的数据,结果应该如下:

value count
1 3
2 2
3 2
4 1

意思就是“1”这个值在info表的所有行里的col1 col2 col3这3列出现了3次,(重复不算,就是说如果col1和col2列都是1,那么这行也只能算“1”这个值出现了1次)

不知道大家明白了吗。。表达不清,起谅解
如果明白了知道方法的,希望大虾能给个SQL方法,万分感谢

------解决方案--------------------
明白了,同一行重复不计算,在表中加入唯一标识的字段bz(比如自增类型)
SELECT requedept,SUM(case when question1='A' then 1 else 0 end) AS A,
SUM( case when question1='B' then 1 else 0 end) AS B,
SUM(ase when question1='C' then 1 else 0 end) AS C,
SUM(Iase when question1='D' then 1 else 0 end) AS D
FROM (
SELECT requedept,question1,BZ FROM tt
UNION
SELECT requedept,question2,BZ FROM tt
UNION
SELECT requedept,question3,BZ FROM tt )A1 GROUP BY requedept

如果A、B、C、D有多种,用SP动态生成SQL语句再执行



;

  相关解决方案