新建了一个叫aa的表,字段类型都是int

需求:每一列的最大值之和
我执行的SQL是:
SELECT MAX(ceshi1 + ceshi2 + ceshi3 + ceshi4) FROM aa; -- 运行结果是209
SELECT MAX(ceshi1) + MAX(ceshi2) + MAX(ceshi3) + MAX(ceshi4) FROM aa; -- 运行结果是212
为什么结果会不一样呢?
上面那个结果是209是这样计算的:先去找ceshi1列中最大值,再去ceshi2中找最大值,再去ceshi3中找最大值,再去ceshi4中找最大值
然后mysql发现ceshi3中170最大,然后寻找与ceshi3的170所在同行的数据,即:5+11+170+23=209
下面那条sql就是取每列的最大值
本文通过一个具体的SQL查询案例,探讨了使用MAX函数在不同列上进行加总时的计算方式差异,解释了为何直接对列求和再取最大值与分别取各列最大值后再相加的结果不同。这一区别对于理解SQL中的聚合函数行为至关重要。
2004

被折叠的 条评论
为什么被折叠?



