题目
在关系表 xs 中查询不同专业的学生人数使用的 SQL 语句为 A . select 专业 count ( * ) from xs group by 专业 B . select 专业 count ( * ) from xs order by 专业 C . select 专业 count ( * ) from xs group by 专业
在关系表 xs 中查询不同专业的学生人数使用的 SQL 语句为
A . select 专业 count ( * ) from xs group by 专业
B . select 专业 count ( * ) from xs order by 专业
C . select 专业 count ( * ) from xs group by 专业
题目解答
答案
答案A和答案B都有问题。答案A只有GROUP BY语句,缺少聚合计算函数,不能统计每个专业的学生人数。答案B中的ORDER BY语句不能统计每个专业的学生人数,只是将结果按照专业名称排序,无法实现查询不同专业学生人数的需求。
而答案C中包含GROUP BY语句和COUNT函数,可以正确地实现不同专业学生人数的查询。
所以该题答案选C。
解析
步骤 1:分析选项 A
选项 A 的 SQL 语句为:`select 专业 count(*) from xs group by 专业`。该语句中,`count(*)` 是一个聚合函数,用于计算行数,但是 `count(*)` 与 `专业` 之间缺少逗号分隔,导致语法错误。此外,即使语法正确,该语句也能够统计每个专业的学生人数,但因为语法错误,选项 A 不正确。
步骤 2:分析选项 B
选项 B 的 SQL 语句为:`select 专业 count(*) from xs order by 专业`。该语句中,`count(*)` 与 `专业` 之间缺少逗号分隔,导致语法错误。此外,`order by` 语句用于对结果进行排序,而不是统计每个专业的学生人数。因此,选项 B 不正确。
步骤 3:分析选项 C
选项 C 的 SQL 语句为:`select 专业, count(*) from xs group by 专业`。该语句中,`count(*)` 与 `专业` 之间有逗号分隔,语法正确。`group by` 语句用于将结果按照 `专业` 分组,`count(*)` 用于计算每个分组中的行数,即每个专业的学生人数。因此,选项 C 正确。
选项 A 的 SQL 语句为:`select 专业 count(*) from xs group by 专业`。该语句中,`count(*)` 是一个聚合函数,用于计算行数,但是 `count(*)` 与 `专业` 之间缺少逗号分隔,导致语法错误。此外,即使语法正确,该语句也能够统计每个专业的学生人数,但因为语法错误,选项 A 不正确。
步骤 2:分析选项 B
选项 B 的 SQL 语句为:`select 专业 count(*) from xs order by 专业`。该语句中,`count(*)` 与 `专业` 之间缺少逗号分隔,导致语法错误。此外,`order by` 语句用于对结果进行排序,而不是统计每个专业的学生人数。因此,选项 B 不正确。
步骤 3:分析选项 C
选项 C 的 SQL 语句为:`select 专业, count(*) from xs group by 专业`。该语句中,`count(*)` 与 `专业` 之间有逗号分隔,语法正确。`group by` 语句用于将结果按照 `专业` 分组,`count(*)` 用于计算每个分组中的行数,即每个专业的学生人数。因此,选项 C 正确。