【发布时间】:2015-09-17 12:35:24
【问题描述】:
如何根据一列的最大值和另外两列分组从 MySQL 中选择行?查询需要按代码分组,按element_id分组,带where子句(element_id=1.B.1.b)和max(data_value)。
code element_id data_value
11-1011.00 1.B.1.a 1.33
11-1011.00 1.B.1.b 2.00
11-1012.00 1.B.1.a 2.67
11-1012.00 1.B.1.b 3.67
11-1012.00 1.B.1.C 7.00
我试过这个:
SELECT * FROM (select
max(`data_value`) as maxID, `code`, `element_id`
from
table_name
GROUP BY `code`, `element_id`
ORDER BY maxID desc) abc
GROUP BY `code`
在那张表中我有很多数据。它是一个样本。
这里可以看得更清楚:
我需要结果:
11-1011.00 1.B.1.b 2.00
11-1012.00 1.B.1.c 7.00
这个结果没有 where 子句。
如果使用 where 子句,我只想要一个与我拥有的 element_id(1.B.1.b) 匹配的结果:
11-1011.00 1.B.1.b 2.00
【问题讨论】:
-
您忘记发布问题了。那是什么?
标签: mysql group-by subquery max grouping