gpt4 book ai didi

mysql - 如何根据一列的最大值从 MySQL 中选择行并将另外两列分组?

转载 作者:可可西里 更新时间:2023-11-01 08:11:26 28 4
gpt4 key购买 nike

如何根据一列的最大值从 MySQL 中选择行并将其他两列分组?查询需要按code分组,按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

最佳答案

你可以通过

SELECT a.code, max( a.maxID ) , a.element_id
FROM (
SELECT *
FROM (
SELECT max(data_value) AS maxID, code , element_id
FROM table_name
GROUP BY code , element_id
ORDER BY maxID DESC
) AS abc
GROUP BY code
) AS a
WHERE a.element_id = '1.B.1.b'
GROUP BY a.code
ORDER BY a.code

或者试试这个

SELECT a.code, a.element_id, a.data_value
FROM interests a
INNER JOIN (
SELECT code, max( data_value ) data_value
FROM table_name
GROUP BY code
)b ON a.code = b.code
AND a.data_value = b.data_value
WHERE a.element_id = '1.B.1.b'
ORDER BY a.code

关于mysql - 如何根据一列的最大值从 MySQL 中选择行并将另外两列分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630438/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com