问题 单项选择题

(31)到(35)题使用如下数据表。
“作者”表:
作者编号 姓名 所在城市
1101 张晓云 北京
1102 李丽北京
1103 袁熙林 上海
1104 赵三立 广州
1105 方德胜 上海
1106 刘清北京
“图书”表:
图书编号 书名 出版单位 价格 作者编号 页数
1101 计算机基础知识 经济科学出版社 32.80 1101 252
2202 会计基础知识 经济科学出版社 17.80 1105 215
1102 VB9.0初级入门 人民邮电出版社 22.50 1102 264
1103 Word2003基础知识 大地出版社19.80 1101 298
1105 VFP6.0程序设计基础 大地出版社38.50 1103 310
2201 中级会计财务知识 经济科学出版社 28.80 1106 245
1110 计算机网络基础 高等教育出版社 26.50 1101 258
1111 计算机组成原理 北京大学出版社 31.20 1103 98
1112 数据库设计原理 高等教育出版社 35.50 1101 330
1113 C语言程序设计 北京大学出版社 32.00 1102 326
1114 软件设计分析高等教育出版社 34.50 1102 330
2203 信息系统分析理论 经济科学出版社 25.50 1102 235

求至少出版3本以上图书的作者姓名及数量,下列SQL语句正确的是( )。

A.SELECT姓名,COUNT(*)AS数量FROM图书,作者;

HAVING COUNT(*)>=3

B.SELECT姓名,COUNT(*) AS 数量 FROM 图书,作者;

WHERE作者.作者编号=图书.作者编号;

GROUP BY图书.作者编号HAVING COUNT(*)>=3

C.SELECT 姓名,COUNT(*)AS数量FROM图书,作者;

FOR作者.作者编号=图书.作者编号;

WHERE图书.作者编号HAVING COUNT(*)>=3

D.SELECT 姓名,COUNT(*) AS 数量 FROM 图书,作者;

WHERE 作者.作者编号=图书.作者编号;

GROUPBY 图书.作者编号SETCOUNT(*)>=3

答案

参考答案:B

解析: 本题中首先通过GROUP BY短语按“作者编号”字段对“图书”表中的记录进行分组,然后利用 COUNT()分组统计每个作者的图书数量,再通过HAVING 子句限定出版数量至少在3本以上的记录。注意: HAVING子句用来进一步限定分组要满足的条件,必须要与GROUP BY短语连用并接在GROUP BY短语之后。

多项选择题
单项选择题