栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

mysql:select max(score)不返回相关的行数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql:select max(score)不返回相关的行数据

您正在使用

MAX
,这是一个汇总函数。聚合函数具有将表中的多行视为一组的作用。如果您没有做任何特别的事情,则整个表中的所有行都将被用作一个大组,并且当存在类似的聚集函数时
MAX
,所有这些行都将被压缩为一个聚合行。这聚光效果会也时有发生的其它集合函数一样
MIN
SUM
GROUP_CONCAT
和朋友(见:http://dev.mysql.com/doc/refman/5.1/en/group-
by-functions.html
)。您也可以使用
GROUPBY
构造方法应用特定的分组,但是如果不这样做,则聚集功能只会将所有行汇总为一行(但是这种汇总是在应用
WHERe
条件,因此仅汇总过滤的行)

现在,由于聚合函数的这种压缩或“减少”效应,因此存在某种从多个值中选出一个值的方法。为此

MAX
,该方法仅列出在您作为参数传递给的表达式的所有实例中找到的最大值
MAX
。但是您的其他列没有这样的聚合函数。对于大多数数据库产品,
SELECT
列表中未聚合列和聚合列的出现都是错误的。但是MySQL的行为是错误的/不同的,并且只为该
SELECT
位中列出的每个非聚合表达式返回可用值之一。哪个值取决于mysql-
您不能依赖任何特定算法。

在许多情况下,人们希望对“具有最大值的任何行”执行某种操作,换句话说,找到具有最大值的行,但使用该行中未聚合的其他列。middaparka提供的解决方案可以做到这一点,还有其他方法也可以实现这一点(针对MySQL分组最大的Google)。有关聚合函数和相关

GROUPBY
子句的更多常规信息,您可以在这里查看-shameless selfplug-
我的文章:http ://rpbouman.blogspot.com/2007/05/debunking-group-by-
myths.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号