繁体   English   中英

mysql - select 一组MAX值返回其他列的错误值

[英]mysql - select MAX value by a group return wrong values of other column

我想通过code和我的数据找到最大值,如下所示:

ID 日期 代码 价格
74 2022-01-04 64
91 2022-01-07 一种 174
112 2022-01-11 128
245 2022-01-12 C 841
550 2022-01-14 一种 79
780 2022-01-20 55
821 2022-01-23 45
868 2022-01-28 C 50
890 2022-02-02 467
891 2022-02-03 58
892 2022-02-04 一种 472

如我所料,它将像下面这样返回:

ID 日期 代码 价格
245 2022-01-12 C 841
890 2022-02-02 467
891 2022-02-03 58
892 2022-02-04 一种 472

我正在使用以下查询:

select x.id, x.date, x.code, y.yprice
from data AS x
inner join
(
select id, date, code, MAX(price) AS yprice
from data
group by code
) y
on x.id = y.id AND x.code = y.code

并给我以下结果:

在此处输入图像描述

关于结果: MAX的值是正确的,但是iddate是错误的。

有解决查询的想法吗?

谢谢你...

SELECT X.ID,X.DATE,X.CODE,X.PRICE
FROM
(
 SELECT C.id,C.date,C.code,C.price,
  ROW_NUMBER()OVER(PARTITION BY C.code ORDER BY C.Price DESC)XCOL
    FROM test AS C
)X WHERE X.XCOL=1

你能试试这个吗

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM