gpt4 book ai didi

mysql - 从 Mysql 的表中选择唯一的组合

转载 作者:行者123 更新时间:2023-11-29 10:45:29 26 4
gpt4 key购买 nike

我的数据集具有以下格式;

Student_id Month Year Amount
1 Jan 2010 600
1 Feb 2010 391
1 Apr 2010 673
1 Jul 2010 564
5 Jan 2010 789
5 Mar 2011 298
5 Aug 2010 347
7 Jan 2010 654
7 Dec 2011 621
7 Apr 2010 450
7 Nov 2011 980

...等等。

我希望我的输出对于每个唯一的 id-月-年组合具有最大金额。即,

Student_id Month Year Amount
1 Apr 2010 673
5 Jan 2010 789
7 Nov 2011 980

...像这样。

如何使用 SQL 获取输出?我试过了

select distinct * , MAX(Amount) from student_details; 

&

SELECT *, MAX(Amount)
FROM student_details
WHERE Amount IN
(
FROM student_details
GROUP BY Student_ID, Year, Month
);

但输出不符合预期。

请提出帮助建议。提前致谢。

最佳答案

在 MySQL 中:

SELECT t0.*
FROM student_details AS t0
LEFT JOIN student_details AS t1 ON t0.Student_id=t1.Student_id t1.Amount>t0.Amount
WHERE t1.Student_id IS NULL;

在 SQL 服务器中:

SELECT T.Student_id,T.Month,T.Year,T.Amount
FROM
(
SELECT *,row_number() over (PARTITION BY Student_ID ORDER BY Amount DESC) as RN
FROM student_details
)T
WHERE T.RN=1

关于mysql - 从 Mysql 的表中选择唯一的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44675105/

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