问题 单项选择题

“外汇名”表:
外币代码 外币名称 现钞买入价 现钞卖出价基准价
13 欧元    958.6400     985.2300    996.540
  28    英镑    1220.9700     1330.2200    1287.456
 37    法郎     592.7650     618.1305    612.591
 26    加元    516.4110     531.4280     519.869
 15   美元    811.5410      817.8900     815.665
“持有数”表:
姓名      外币代码     持有数量
李巡芬      37       30000.00
张武奇     13       1000.00
陆凭凭     15       3000.00
陆凭凭      37        4000.00
张武奇      15       2200.00
林诗诗      26       2000.20
李巡芬      26       30000.00
张武奇      28       3000.00
陆凭凭      26       3000.00
陆凭凭      13      4000.00
张武奇      26       18000.00

查询持有外币种类在4种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句正确的是( )。

A. SELECT 姓名,COUNT(*)AS外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER BY 外币种类,姓名 DESC
B. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER BY COUNT(*),姓名 DESC
C. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER BY 外币种类 AND 姓名 DESC
D. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER BY 外币种类+姓名 DESC

答案

参考答案:A

解析: 本题中首先通过GROUP BY短语按“姓名”字段对“持有数”表中的记录进行分组,然后利用COUNT()分组统计每个人持有的外币种类,再通过HAVING子句限定外币种类至少在4种以上的记录;利用ORDERBY短语可以对查询结果进行排序,有升序(ASC)和降序(DESC)两种,默认的为升序排序方式,如果排序字段有多个,则每个字段之间用逗号隔开。

单项选择题
多项选择题