考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

表t1中有id,name,salary三列,如果t1是一个论坛的发帖信息表,id是发帖人的编号,name是帖子的标题,salary是每次发帖论坛奖励的分数。 (3)显示每个会员发了几个帖子的语句是
A. select id, count(name) from t1 group by id;
B. select id, count(name) from t1 group by id having count(name)>5;
C. select id, count(name) from t1 group by id having count(name)>5 order by count(name);
D. select id, count(name) from t1 where id > 100 group by id;
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

id是发帖人的编号,是唯一的,我们想知道每个会员的发帖数,group by id----按照id分组,就是必然选择。 count(name)是对按照id分组之后的结果计算name的个数。

正确答案是:A: `select id, count(name) from t1 group by id;`

### 分析:

1. **A: `select id, count(name) from t1 group by id;`**
- 这条语句的作用是按发帖人的编号(id)分组,并统计每个发帖人发帖的数量(count(name))。
- `group by id` 是将相同 id 的记录分为一组,然后对每一组进行计算。
- 这正好满足了题目要求“显示每个会员发了几个帖子”。

2. **B: `select id, count(name) from t1 group by id having count(name)>5;`**
- 这条语句在 A 的基础上增加了 `having count(name)>5`,即只显示发帖数大于 5 的会员。
- 虽然这条语句可以统计发帖数,但它并不符合题目要求,因为题目没有要求过滤发帖数。

3. **C: `select id, count(name) from t1 group by id having count(name)>5 order by count(name);`**
- 这条语句在 B 的基础上增加了 `order by count(name)`,即按发帖数排序。
- 同样,这条语句在统计发帖数的基础上进行了过滤和排序,但题目只要求显示每个会员发了几个帖子,没有要求过滤和排序。

4. **D: `select id, count(name) from t1 where id > 100 group by id;`**
- 这条语句增加了 `where id > 100` 的条件,意味着只统计 id 大于 100 的会员发帖数。
- 这不符合题目要求,因为题目没有要求对 id 进行过滤。

综上所述,A 选项最符合题目的要求,即按发帖人编号分组并统计每个会员发了几个帖子。