假设我有一张NBA球员的简单表格:
id,player,mp,ppg(mp-已玩的比赛,ppg-每场得分)。
我需要一个查询,得到所有的人,但把结果分成两部分:
在PPG Desc订购的30个游戏中玩过或等于30个游戏的玩家,
玩ppg desc订购的少于30个游戏的玩家
因此,理想的产出是(例如):
n. player mp ppg
1. player1 82 32.5
2. player2 56 32.1
3. player3 82 29.7
4. player4 80 27.6
…
70. player70 75 1.5 (lowest in the 30+ games group)
71. player71 29 35.7 (highest in the less than 30 games group)
72. player72 19 31.3
…
组1)排在第一位(更重要),因此即使组2中的ppg高于组1中最好的ppg),它也会在组中最差的ppg之后下降,在组中玩家玩了30多场游戏。
只有一个查询就可以做到吗?我在用mysql。谢谢!
最佳答案
select id, player, mp, ppg
from
playerTable
order by if (mp>=30, 1, 0) desc, ppg desc, mp desc`