【问题标题】:Advanced SELECT query [duplicate]高级 SELECT 查询 [重复]
【发布时间】:2013-08-01 01:00:58
【问题描述】:

这是我的表的示例:

技能 |技能等级

1 | 1

1 | 2

1 | 3

2 | 1

2 | 2

3 | 1

3 | 2

3 | 3

3 | 4

所以,我想编写一个查询,返回技能 1、技能等级 3、技能 2 技能等级 2 和技能 3 技能等级 4 - 此外,选择查询来选择每个技能的一行,但技能等级最高的那一行。一问一答,我一头雾水。

提前致谢

编辑:该表包含大约 200 种不同的技能。

【问题讨论】:

  • 一个简单的 max 和 group by 就可以解决这个问题,不是吗?请先 google。
  • 真是个笑话,我期待一个“高级 SELECT 查询”的请求,它就是这个......

标签: sql select greatest-n-per-group


【解决方案1】:
select Skill, max(SkillLevel)
from table_name
group by Skill

将所有技能分组。然后从每组中取最大值。将正确的表名放在我有“table_name”的位置。这将返回由以下组成的对:

  1. 技能
  2. 以及该技能的最高技能等级。

【讨论】:

  • 该死!我喜欢这些简单的答案来拉扯我的分数。都回答了。
【解决方案2】:
select Skill, Max(SkillLevel)
from Skills
group by Skill

【讨论】:

    【解决方案3】:

    SELECT Skill, MAX(SkillLevel) FROM Skills GROUP BY Skill;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2023-03-24
      • 2018-08-01
      • 2020-03-15
      • 2016-02-01
      相关资源
      最近更新 更多