(自连接)SQL面试题-0608

原创 2013年12月05日 17:05:25
一个简单的表TABLE 有100条以上的信息,其中包括:

产品         颜色             数量
产品1         红色             123
产品1         蓝色             126
产品2         蓝色             103
产品2         红色             NULL
产品2         红色             89
产品1         红色             203


请用SQL语句完成以下问题:


1。按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量:


2。按产品分类,将数据按下列方式进行统计显示
      产品         红色           蓝色

create table test0608(产品 varchar(10),颜色 varchar(10),数量 int);


insert into test0608 values ('产品1', '红色', 123);
insert into test0608 values ('产品1', '蓝色', 126);
insert into test0608 values ('产品2', '蓝色', 103);
insert into test0608 values ('产品2', '红色', NULL);
insert into test0608 values ('产品2', '红色', 89);
insert into test0608 values ('产品1', '红色', 203);


select * from test0608;


select 产品, 红色, 蓝色, 红色 - 蓝色 差额
  from (select a1.产品, a1.红色, b1.蓝色
          from (select 产品, 颜色, 红色
          from (select 产品, 颜色, sum(数量) 红色
                  from test0608
                 group by 产品, 颜色) a
         where a.颜色 = '红色' ) a1
          join (select 产品, 颜色, 蓝色
          from (select 产品, 颜色, sum(数量) 蓝色
                  from test0608
                 group by 产品, 颜色) b
         where b.颜色 = '蓝色' ) b1 on a1.产品 = b1.产品) c
 where 红色 > 蓝色;


select a1.产品, a1.红色, b1.蓝色
  from (select 产品, 颜色, 红色
  from (select 产品, 颜色, sum(数量) 红色 from test0608 group by 产品, 颜色) a
 where a.颜色 = '红色' ) a1
  join (select 产品, 颜色, 蓝色
  from (select 产品, 颜色, sum(数量) 蓝色 from test0608 group by 产品, 颜色) b
 where b.颜色 = '蓝色' ) b1 on a1.产品 = b1.产品;


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL面试题之一有关连接、查询的题

左向外连接,右向外连接,全连接的关键字: Left Join On 或 Left Outer Join On Right Join On 或 Right Outer Join  On Full Joi...

sql面试题java

  • 2017年11月06日 20:53
  • 58KB
  • 下载

SQL面试题解析

  • 2014年03月11日 13:18
  • 20KB
  • 下载

sql语句面试题(查询按照申请日期倒序排列的前10个记录)

sql函数:case when then else end 、row_number() 、with as、having count 函数运用

sql面试题.。

  • 2013年08月23日 17:31
  • 3KB
  • 下载

SQL经典面试题及答案

  • 2016年11月28日 11:47
  • 135KB
  • 下载

经典SQL练习题5----面试题及答案

SQL经典面试题及答案 1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 200...

极详细数据库面试题(SQL+ORACLE)

  • 2012年11月23日 17:43
  • 9.28MB
  • 下载

数据库面试题(SQL+ORACLE)

  • 2011年12月15日 15:21
  • 312KB
  • 下载

<基础>SQL面试题(2)

问题描述: 本题用到下面三个关系表: CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(自连接)SQL面试题-0608
举报原因:
原因补充:

(最多只允许输入30个字)