要在 SQL 中通过另一列选择 MAX(列值) 和 DISTINCT 行,可以使用子查询和 GROUP BY 语句。以下是一个示例:
假设有一个名为 students
的表,其中包含以下列:id
、name
、age
和 score
。现在,我们想要找到每个年龄的最高分,并且只显示每个年龄的一行。
SELECT age, MAX(score) AS max_score
FROM students
GROUP BY age;
这个查询将返回一个结果集,其中包含每个年龄的最高分。
如果您还想要去除重复行,可以使用 DISTINCT 关键字:
SELECT DISTINCT age, MAX(score) OVER (PARTITION BY age) AS max_score
FROM students;
这个查询将返回一个结果集,其中包含每个年龄的最高分,并且每个年龄只显示一行。
在这个示例中,我们使用了窗口函数 MAX(score) OVER (PARTITION BY age)
来计算每个年龄的最高分。PARTITION BY
子句将结果集分成多个窗口,每个窗口都基于 age
列的值。然后,MAX(score)
函数计算每个窗口中 score
列的最大值。
这个查询不涉及到其他云计算品牌商,因此不需要提及它们。
领取专属 10元无门槛券
手把手带您无忧上云