【问题标题】:Selecting Item that has Max of one but Min of another in SQL [closed]在 SQL 中选择具有一个最大值但另一个最小值的项目 [关闭]
【发布时间】: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 两者都想要,即最高点数或最低年数。

标签: sql ms-access


【解决方案1】:

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

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

【讨论】:

  • 我认为他希望同时满足这两个条件,所以它应该有 'AND' 而不是 'OR'
  • @AndreiManolache,只要最年轻的人得分不高,这可能会返回零行。
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2018-08-25
  • 1970-01-01
  • 2023-01-06
  • 2021-09-10
相关资源
最近更新 更多