我的表结构是这样的
catName class age
-------------------
AAA 4 19
AAA 3 14
AAA 3 12
AAA 3 9
BBB 7 12
BBB 6 12
BBB 7 17
CCC 8 10
DDD 9 10
DDD 9 11
我想要的结果是按 catName 和 class 获得组的第二大年龄。 所以结果应该是
AAA 3 14
BBB 7 12
DDD 9 10
请帮我找到 MySQL 的查询
最佳答案
这有点棘手,但这是一种方法:
select catname, class,
(case when count(*) > 1
then substring_index(substring_index(group_concat(age order by age desc), ',', 2), ',' -1)
else max(age)
end) as age
from t
group by catname, class;
关于mysql - 使用 group by 子句获取第二大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815512/