[英]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的值是正确的,但是id和date是错误的。
有解决查询的想法吗?
谢谢你...
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.