首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

返回每个组的最大值,但当存在平局时,在MySQL中返回id较小的组

在MySQL中返回每个组的最大值,但当存在平局时,可以使用以下查询语句:

代码语言:txt
复制
SELECT group_id, MAX(value) AS max_value
FROM your_table
GROUP BY group_id
HAVING COUNT(*) = 1
UNION ALL
SELECT t1.group_id, t1.value AS max_value
FROM your_table t1
INNER JOIN (
    SELECT group_id, MAX(value) AS max_value
    FROM your_table
    GROUP BY group_id
    HAVING COUNT(*) > 1
) t2 ON t1.group_id = t2.group_id AND t1.value = t2.max_value
ORDER BY group_id;

这个查询语句首先使用GROUP BYMAX函数来找到每个组的最大值,并使用HAVING COUNT(*) = 1来排除存在平局的组。然后使用UNION ALL将结果与存在平局的组的最大值进行合并。最后使用ORDER BY对结果按照group_id进行排序。

这个查询语句可以返回每个组的最大值,当存在平局时,返回id较小的组的最大值。请将your_table替换为实际的表名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券