有一个表数据如下文章id    栏目id   作者id
1            a       A
2            b       B
3            c       C
4            d       C
5            d       B
6            b       A
7            b       C想通过SQL语句查询获取作者在各个栏目下发布的文章数量栏目    作者A    作者B   作者C
a         1        0       0
b         1        1       1
c         0        0       1
d         0        1       2
真心求指导!!

解决方案 »

  1.   


    with t as(
    select '1' wen_id,'a' lan_id, 'A' zuo_id from dual
    union all
    select '2' wen_id,'b' lan_id, 'B' zuo_id from dual
    union all
    select '3' wen_id,'c' lan_id, 'C' zuo_id from dual
    union all
    select '4' wen_id,'d' lan_id, 'C' zuo_id from dual
    union all
    select '5' wen_id,'d' lan_id, 'B' zuo_id from dual
    union all
    select '6' wen_id,'b' lan_id, 'A' zuo_id from dual
    union all
    select '7' wen_id,'d' lan_id, 'C' zuo_id from dual)select tt.lan_id,
           MAX(nvl(decode(tt.zuo_id, 'A', nm),0)) 作者A,
           MAX(nvl(decode(tt.zuo_id, 'B', nm),0)) 作者B,
           MAX(nvl(decode(tt.zuo_id, 'C', nm),0)) 作者C
    from (select t.zuo_id,t.lan_id,count(wen_id) nm
    from t
    group by t.lan_id,t.zuo_id
    order by t.zuo_id,t.lan_id) tt
    group by tt.lan_id
    order by tt.lan_id