1Z0-51 QUESTION 18 DISTINCT的用法

QUESTION 18

Examine the structure of the PROMOTIONS table:

name Null Type
PROMO_ID NOT NULL NUMBER(6)
PROMO_NAME NOT NULL VARCHAR2(30)
PROMO_CATEGORY NOT NULL VARCHAR2(30)
PROMO_COST NOT NULL NUMBER(10,2)
The management wants to see a report of unique promotion costs in each promotion category.
Which query would achieve the required result?
A. SELECT DISTINCT promo_cost, promo_category FROM promotions;
B. SELECT promo_category, DISTINCT promo_cost FROM promotions;
C. SELECT DISTINCT promo_cost, DISTINCT promo_category FROM promotions;

D. SELECT DISTINCT promo_category, promo_cost FROM promotions ORDER BY 1;

答案:D

解析:

--A选项能够得出结果,但不合题意,这个是每个促销价格都有什么种类
SQL> SELECT DISTINCT promo_cost, promo_category FROM promotions;

PROMO_COST PROMO_CATEGORY
---------- ------------------------------------------------------------
     30000 promocategory2
     20000 promocategory1
     40000 promocategory3
     30000 promocategory3
     30000 promocategory5
--B选项报错
SQL> SELECT promo_category, DISTINCT promo_cost FROM promotions;
SELECT promo_category, DISTINCT promo_cost FROM promotions
                       *
ERROR at line 1:
ORA-00936: missing expression

--C选项报错
SQL> SELECT DISTINCT promo_cost, DISTINCT promo_category FROM promotions;
SELECT DISTINCT promo_cost, DISTINCT promo_category FROM promotions
                            *
ERROR at line 1:
ORA-00936: missing expression

--D选项得出正确的答案。
SQL> SELECT DISTINCT promo_category, promo_cost FROM promotions ORDER BY 1;

PROMO_CATEGORY                                               PROMO_COST
------------------------------------------------------------ ----------
promocategory1                                                    20000
promocategory2                                                    30000
promocategory3                                                    30000
promocategory3                                                    40000
promocategory5                                                    30000


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值