ITPub博客

首页 > 数据库 > Oracle > 每日一练(三)按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量

每日一练(三)按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量

原创 Oracle 作者:Angelina7 时间:2016-10-28 23:35:55 0 删除 编辑

产品  颜色  数量
产品1  红色  100
产品1  蓝色  80
产品2  蓝色  103
产品2  红色  NULL
产品2  红色  89
产品1  红色  100
按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量

drop table products;
create table products(name varchar2(20),color varchar2(20),quantities int);
insert into products values('产品 1','红色',100);
insert into products values('产品 1','蓝色',80);
insert into products values('产品 2','红色',null);
insert into products values('产品 2','蓝色',103);
insert into products values('产品 2','红色',89);
insert into products values('产品 1','红色',100);
commit;

select name, cnt_red - cnt_blue diff
  from (select NAME,
               sum((decode(COLOR, '红色', nvl(QUANTITIES, 0)))) cnt_red,
               sum((decode(COLOR, '蓝色', nvl(QUANTITIES, 0)))) cnt_blue
          from products
         group by NAME)
 where cnt_red > cnt_blue;
NAME                       DIFF
-------------------- ----------
产品 1                      120

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31402276/viewspace-2127300/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 每日一练(四)
请登录后发表评论 登录
全部评论

注册时间:2016-10-14

  • 博文量
    31
  • 访问量
    12513