现有一张表名为T,共有四个字段(C1,C2,C3,C4),有如下数据
 
C1 C2 C3 C4A A C B
C D B A
D A C B
C C B A
A D C A
D C A B
B A D A
C A D D
D C B A要求用SQL语句进行统计,实现如下输出Alphabet CountNum
A 12
B 7
C 9
D 8
 

解决方案 »

  1.   

    select c1 as Alphabet , count(c1) AS CountNum
    from
    (select c1 from T
    union
    select c2 from T
    union
    select c3 from T
    union
    select c4 from T) as A
    group by c1
      

  2.   

    先说说这个表是用来做什么的,C1,C2,C3,C4中的值一定就是a-z or A-Z,不会有其它的?统计"字段的值"在数据库表中存在的次数(量),且是多个值要同时作比较,有这个逻辑吗??搜索也只能有一个关键字
      

  3.   

    amandag(高歌) ( ) 
    是不能统计出来的字段的值 是在不同的数据列中
      

  4.   

    楼上的还是测试一下吧,谢谢提醒,少了Allcreate table T
    (
    C1 varchar(10),
    C2 varchar(10),
    C3 varchar(10),
    C4 varchar(10)
    )insert into T values('A','A','C','B')
    insert into T values('C','D','B','A')
    insert into T values('D','A','C','B')
    insert into T values('C','C','B','A')
    insert into T values('A','D','C','A')
    insert into T values('D','C','A','B')
    insert into T values('B','A','D','A')
    insert into T values('C','A','D','D')
    insert into T values('D','C','B','A')select c1 as Alphabet , count(c1) AS CountNum
    from
    (select c1 from T
    union all
    select c2 from T
    union all
    select c3 from T
    union all
    select c4 from T) as A
    group by c1