使用MySQL MAX函数访问行的其余部分时遇到问题
我试图在用MAX函数返回的行上返回另一列。例如,我有一张桌子,鸡蛋=>10个,培根=>20个。我正试图根据价值返还鸡蛋或培根。我试过这个:使用MySQL MAX函数访问行的其余部分时遇到问题,mysql,max,Mysql,Max,我试图在用MAX函数返回的行上返回另一列。例如,我有一张桌子,鸡蛋=>10个,培根=>20个。我正试图根据价值返还鸡蛋或培根。我试过这个: SELECT column1, MAX(column2) FROM table 我似乎无法访问column1的值。我是否缺少MAX函数 答复: SELECT column1, MAX(column2) as col2 FROM table GROUP BY column1 ORDER BY col2 要对一组数据应用max()聚合函数: SELECT c
SELECT column1, MAX(column2) FROM table
我似乎无法访问column1的值。我是否缺少MAX函数
答复:
SELECT column1, MAX(column2) as col2 FROM table GROUP BY column1 ORDER BY col2
要对一组数据应用
max()
聚合函数:
SELECT column1, MAX(column2)
FROM table
group by column1
如果您的意思是要确定最大值并获取与该最大值相关的详细信息,那么有多种方法可以做到这一点:
column2
值的查询作为标量子查询,将column2
与结果进行匹配(如下所示):
SELECT t.*
FROM atable AS t
INNER JOIN (
SELECT MAX(column2) AS max_column2 FROM atable
) AS m ON t.column2 = m.max_column2
;
column2
的降序对行进行排序,然后返回最上面的一行:
SELECT *
FROM atable
ORDER BY column2
LIMIT 0, 1
;
请注意,与前两个选项不同,此选项最多返回一行,即使最大值存在关联SELECT t.*
FROM atable AS t
INNER JOIN (
SELECT grouping_criterion, MAX(column2) AS max_column2
FROM atable
GROUP BY grouping_criterion
) AS m ON t.grouping_column = m.grouping_column
AND t.column2 = m.max_column2
;
我通过使用orderby函数使它工作
SELECT column1, MAX(column2) as col2 FROM table GROUP BY column1 ORDER BY col2
最后,我将它与订单一起使用。如果您有不同的、更好的解决方案,请分享。添加您自己的答案并解释解决方案。
SELECT column1, MAX(column2) as col2 FROM table GROUP BY column1 ORDER BY col2