高级SELECT查询

时间:2013-08-01 01:00:59

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

以下是我的表格示例:

技能|技能等级

1 | 1

1 | 2

1 | 3

2 | 1

2 | 2

3 | 1

3 | 2

3 | 3

3 | 4

所以,我想写一个查询,它返回Skill 1 SkillLevel 3,Skill 2 SkillLevel 2和Skill 3 SkillLevel 4 - 此外,选择一个查询来选择每个技能的一行,但是具有最高SkillLevel的一行。在一个查询中,我一无所知。

提前致谢

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

3 个答案:

答案 0 :(得分:3)

select Skill, max(SkillLevel)
from table_name
group by Skill

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

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

答案 1 :(得分:1)

select Skill, Max(SkillLevel)
from Skills
group by Skill

答案 2 :(得分:0)

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