大概查询出的数据是这样的:其中重复的数据是有效的,后面要计算的
code   name   class
001    分区1  玉米   
001    分区1  玉米
001    分区1  玉米
002    分区2  玉米
002    分区2  玉米
003    分区3  稻谷
004    分区4  大米我想查询出的结果是这样的:
class 分区1数 分区2数 分区3数 分区4数
玉米   3        2      0        0
稻谷   0        0      1        0
大米   0        0      0        1我写的是:
select class,
sum(decode(code,'001',1,0)),
sum(decode(code,'002',1,0)),
sum(decode(code,'003',1,0)) from tt order by class,code
但计算出来有重复值,

解决方案 »

  1.   


    select class,
    sum(decode(code,'001',1,0)) 分区1数,
    sum(decode(code,'002',1,0)) 分区2数,
    sum(decode(code,'003',1,0)) 分区3数,
    sum(decode(code,'004',1,0)) 分区4数 
    from tt
    group by class
    order by class;
      

  2.   


    SQL> select class,
      2  sum(decode(code,'001',1,0)) 分区1数,
      3  sum(decode(code,'002',1,0)) 分区2数,
      4  sum(decode(code,'003',1,0)) 分区3数,
      5  sum(decode(code,'004',1,0)) 分区4数
      6  from tt
      7  group by class
      8  order by class;CLASS         分区1数    分区2数    分区3数    分区4数                          
    ---------- ---------- ---------- ---------- ----------                          
    大米                0          0          0          1                          
    玉米                3          2          0          0                          
    稻谷                0          0          1          0