假设我有一张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`

09-15 18:22