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

备考刷题,请到

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))。
- 这是最直接和标准的做法,符合题目要求“显示每个会员发了几个帖子”。

2. **选项B**: `select id ,count(name) from t1 group by id having count(name) > 5;`
- 这条语句在分组统计之后,使用了HAVING子句来过滤结果,只显示发帖数大于5的会员。
- 这并不完全符合题目要求,因为题目并没有要求过滤出发帖数大于5的会员。

3. **选项C**: `select id ,count(name) from t1 group by id having count(name) > 5 order by count(name);`
- 这条语句在选项B的基础上增加了`order by`子句来对结果进行排序。
- 同样,由于题目没有要求过滤和排序,所以这条语句不完全符合题目要求。

4. **选项D**: `select id ,count(name) from t1 where id > 100 group by id;`
- 这条语句在分组统计之前,使用了WHERE子句来过滤出id大于100的记录。
- 这也不符合题目要求,因为题目没有要求对id进行任何过滤。

因此,最符合题目要求的语句是选项A。