正在回答 回答被采纳积分+1
同学你好:
老师的提示是没有错误的,
例如:
test表:
如果根据name进行分组,执行sql语句:
SELECT name FROM test
GROUP BY name;
查询时先要对数据进行分组(FROM test Group BY name),我们可以虚拟一个表。
找name那一列,具有相同name值的行,合并成一行,如对于name值为aa的,那么<1 aa 2>与<2 aa 3>两行合并成1行,所有的id值和number值写到一个单元格里面。
(1)如果执行select id或者number的话,那么返回的结果应该是虚拟表,可是id和number中有的单元格里面的内容是多个值的,而关系数据库就是基于关系的,单元格中是不允许有多个值的,所以执行select id或者number 语句就会出现错误。
(2)name列,每个单元格只有一个数据,所以我们select name的话,就没有问题。为什么name列每个单元格只有一个值呢,因为我们就是用name列来group by的。
(3)那么对于id和number里面的单元格有多个数据的情况怎么处理呢?就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。如cout(id),sum(number),而每个聚合函数的输入就是每一个多数据的单元格。
回到我们的问题,由于我们的group by的是主键deptno,每个主键对应一条数据,因此不会出现同一个单元格有多个数据的情况,因此可以使用select查询。
如果我解决了同学的问题,请采纳!学习愉快^_^。
- 参与学习 人
- 提交作业 625 份
- 解答问题 2669 个
数据库作为企业储存和管理数据的根本,掌握数据库是每个开发工程师必备的技能,本阶段带你学会用Python操作MySQL、Redis和MongoDB三大主流数据库。夯实数据库基础。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星