列表

详情


大数据计算服务(MaxCompute, 原ODPS )中,表ods_ sale_ detail 存放的是销告明细记录,建表语句如下: create table ods_ sale_ deti(sale_ date datetime, region string, amt decimal);其中sale_date字段表示销售的日期,amt表示销售全额,想要找出所有汇总销售额大于10000的日期以及当日的销售额,以下哪几个SQL可以达到这个目的? ( )

A. select sale_ date, sum(amt) from ods_sale_ detail group by sale_ date where amt> 10000;

B. select * from (select sale_date,sum(amt) s_amt from sale_ date group by sale_date) sub where s_amt>10000;

C. select sale_ date, sum(amt) from ods_ sale_ detail group by sale_ date having sum(amt)>10000;

D. select sale_date, sum(amt) from ods_ sale_ detail group by sale_ date where sum(amt)>10000;

参考答案: BC

详细解析:

正确答案BC A选项,where执行在sum之前,取得不是全额而是原数据。可以采用having D选项,where执行在sum之前,不允许用执行时还没有进行SUM,语法不合理 BC合理

上一题