oracle分组求和 行变列问题

duyu1025 2012-08-01 10:15:40
大概查询出的数据是这样的:其中重复的数据是有效的,后面要计算的
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


但计算出来有重复值,
...全文
218 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生无悔 2012-08-01
  • 打赏
  • 举报
回复

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
duyu1025 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL 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……
[/Quote]

我上面写的时间关系没写对,我就是你这么写的,但是并没有求和,都是1,而且有几个分区1 ,他就显示几行分区1的行,里面的值还错了。。
人生无悔 2012-08-01
  • 打赏
  • 举报
回复

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;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧