PL/SQL Challenge 每日一题:2020-5-5 DISTINCT关键字

[复制链接]
查看11 | 回复4 | 2008-9-15 01:28:12 | 显示全部楼层 |阅读模式
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
http://www.plsqlchallenge.com/
作者:Chris Saxon
运行环境:SQLPLUS, SERVEROUTPUT已打开, 最低版本要求:11.2
注:本题给出答案时候要求给予简要说明才能得到奖品
你执行了这些命令:
create table qz_bricks (
brick_id integer
not null
primary key,
colour varchar2(10)
not null,
shape varchar2(10)
not null
);
insert into qz_bricks
values ( 1, 'red', 'cylinder' );
insert into qz_bricks
values ( 2, 'red', 'cube' );
insert into qz_bricks
values ( 3, 'blue', 'cylinder' );
insert into qz_bricks
values ( 4, 'blue', 'cube' );
insert into qz_bricks
values ( 5, 'green', 'cylinder' );
insert into qz_bricks
values ( 6, 'green', 'cube' );

commit;
哪些选项会返回这些数据,每种颜色一行?

COLOUR
----------
blue
green
red
(A)
select colour
from qz_bricks
orderby colour;
(B)
select distinct colour
from qz_bricks
orderby colour;
(C)
select unique colour
from qz_bricks
orderby colour;
(D)
select colour
from qz_bricks
groupby colour
orderby colour;
(E)
select max ( colour ) colour
from qz_bricks
groupby shape
orderby colour;

回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层

答案:BD
A: 没有DISTINCT,COLOR有重复
B: 正解
C: 应该不支持unique这样的语法
D: 对COLOR作 GROUP BY也可以
E: 这里是groupby shape,不是COLOR, shape只有2个组,结果就两个颜色
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
答案BCD
A)错误,输出有重复值。
B)正确,用distinct去重了
C)正确,用unique去重了
我一度怀疑这个是错的,没想到运行起来是正确的,一直没有这么用过
D)正确,通过group by colour去重
E)错误,group by后面的是 shape,这样只会输出两个RED
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
验证了,C 居然是正确的。
SQL> select unique colour
2from qz_bricks
3orderby colour;
COLOUR
----------
blue
green
red

回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
答案BCD, 3楼得奖。
A:
这将返回表中的所有行。所以每个颜色都会在结果中出现两次。
B:
DISTINCT为SELECT列表中的表达式每个值返回一行。所以这个返回的是每种颜色一行。
C:
UNQIUE是DISTINCT的同义词。所以这个选项与前一选项返回相同的数据。
D:
GROUP BY为分组列表中的每个值返回一行。所以这个返回的是每种颜色一行。
E:
这是按形状进行分组,然后返回每个颜色值的最大值。表格中只有两种形状(圆柱体和立方体),"红色"是每种形状的最大值。所以这个选项返回这些行:
COLOUR
----------
red
red
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行