大概查询出的数据是这样的:其中重复的数据是有效的,后面要计算的
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
但计算出来有重复值,
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
但计算出来有重复值,
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;
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