在 SQL 中选择具有一个最大值但另一个最小值的项目 [关闭]

Posted

技术标签:

【中文标题】在 SQL 中选择具有一个最大值但另一个最小值的项目 [关闭]【英文标题】:Selecting Item that has Max of one but Min of another in SQL [closed] 【发布时间】:2020-09-20 19:12:23 【问题描述】:

我有一张表格,其中列出了球队的球员、球队的年数以及得分。我要做的是返回得分最多且在团队中最少年数的人。这就是我所做的:

SELECT player
FROM team
GROUP BY player
HAVING MAX(points) and MIN(years);

表格示例和预期输出:

player | years | points
-------+-------+---------    
p1     |    2  |  200 
p2     |    5  |   10
p3     |    1  |  500

从这里我希望回到 p3,因为他们有几年的最小值和积分的最大值。

【问题讨论】:

您使用的是哪个 dbms? 我正在使用 Microsoft Access。 哪个更重要,MAX(点)还是 MIN(年)? 我想 OP 两者都想要,即最高点数或最低年数。 Edit 问题并提供minimal reproducible example。 【参考方案1】:

这将为您提供最高分的玩家,以及最低年限的玩家:

SELECT player, points, years
FROM team
where points = (select max(points) from team)
   or years = (select min(years) from team)

【讨论】:

我认为他希望同时满足这两个条件,所以它应该有 'AND' 而不是 'OR' @AndreiManolache,只要最年轻的人得分不高,这可能会返回零行。

以上是关于在 SQL 中选择具有一个最大值但另一个最小值的项目 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询以选择具有最小值的不同行

具有最大值和最小值的 jQuery 计数器

DQL选择具有一列MAX值的每一行

SQL - 选择最大具有不同值的重复项

SQL选择具有最大和最小日期的行

sql查询时间最小值的列