AI智能整理导入 AI智能整理导入
×
首页 题库中心 研发工程师模拟测试题库 题目详情
CA7245CE852000018CC42C30E85A107C
研发工程师模拟测试题库
646
单选题

假设订单表orders用来存储订单信息,cid代表客户编号,money代表单次订购额,现要查询每个客户的订购次数和每个客户的订购总金额,下面( )sql语句可以返回正确结果。

A
select cid,count(distinct(cid)),sum(money) from orders order by cid
B
select cid,count(cid),sum(money) from orders order by cid
C
select cid,count(distinct(cid)),sum(money) from orders group by cid
D
select cid,count(cid),sum(money) from orders group by cid

答案解析

正确答案:D

解析:

解析这道题目,我们需要明确目标是查询每个客户的订购次数和每个客户的订购总金额。这需要用到SQL的聚合函数以及分组(GROUP BY)功能。

选项A:
sql
复制代码
select cid, count(distinct(cid)), sum(money) from orders order by cid
这里的count(distinct(cid))是不必要的,因为cid在订单表中通常是唯一的(假设每个订单都有一个唯一的客户编号),使用distinct并不会改变结果,而且这不是计算订购次数的正确方法。
order by cid只是用来排序结果,而不是用来分组,因此无法正确计算每个客户的订购次数和总金额。
错误。
选项B:
sql
复制代码
select cid, count(cid), sum(money) from orders order by cid
count(cid)可以计算每个cid的出现次数,但因为没有使用GROUP BY,SQL会返回整个表的一个单一汇总结果,而不是每个客户的订购次数。
order by cid同样只是排序,不是分组。
错误。
选项C:
sql
复制代码
select cid, count(distinct(cid)), sum(money) from orders group by cid
使用了GROUP BY cid,这是正确的分组方式。
但是count(distinct(cid))仍然是不必要的,因为在每个分组内cid都是唯一的,使用distinct不会改变结果。
错误。
选项D:
sql
复制代码
select cid, count(cid), sum(money) from orders group by cid
使用了GROUP BY cid,正确地按照客户编号分组。
count(cid)正确地计算了每个分组(即每个客户)的订单数量。
sum(money)正确地计算了每个客户的订购总金额。
正确。

因此,选择D是因为它正确地使用了GROUP BY来分组,并且使用了count()和sum()函数来计算每个组的订购次数和总金额。
研发工程师模拟测试题库

扫码进入小程序
随时随地练习

关闭
专为自学备考人员打造
试题通
自助导入本地题库
试题通
多种刷题考试模式
试题通
本地离线答题搜题
试题通
扫码考试方便快捷
试题通
海量试题每日更新
试题通
欢迎登录试题通
可以使用以下方式扫码登陆
试题通
使用APP登录
试题通
使用微信登录
xiaochengxu
联系电话:
400-660-3606
xiaochengxu