现在有一个表,大概结构如下编号   权属性质
001   国有
001   集体
001   集体
002   国有
002   国有
002   国有
002   集体
003   国有请问大家,如何写一个sql语句,能得到下述方式的结构:(还有其他权属,未列出.也就是说,不知道表中编号的具体信息,也不知道都会有哪几个权属信息.最终是要统计每个编号的国有,集体等各种的权属的数量):编号   国有数量   集体数量
001   1         2
002   3         1
003   1         0

解决方案 »

  1.   

    select 编号,
           case when 权属性质 = 国有 then 1 else 0 end as 国有数量,
           case when 权属性质 = 集体 then 1 else 0 end as 集体数量
      from 表
     where 1 = 1
       ......
      

  2.   


    select 编号, sum(decode(权属性质,'国有',1,0)),sum(decode(权属性质,'集体',1,0))
    from t1
    group by 编号
      

  3.   

    Sorry!
    少写了Distinct。
      

  4.   

    楼上的,你说的这个是一个sql语句么,如果不知道里面有哪几个权属性质呢?
      

  5.   

    gaohaha:
    谢谢!你的方法可以,但请问如果在不知道权属性质里面有哪些权属,也不知道有几个权属的情况下,该怎么实现这个功能呢