结果表:
result_event | name | position
-------------+---------------+------------
1 | Jason Smith | 1
1 | David Johnson | 2
1 | Randy White | 3
1 | Billy Hansen | 4
2 | Wally Mann | 1
2 | Jason Smith | 2
2 | Billy Hansen | 3
2 | David Johnson | 4
2 | Randy White | 5
我有一张表,上面有比赛结果。我想根据两站比赛中选手的组合位置对他们进行分类(例如1+2=3,2+4=6,等等)赛车手“wally mann”没有参加第一场比赛,所以即使他赢了第二场比赛,他也应该落后于所有其他人。
期望结果:
Name | Race1 | Race2
--------------+--------+-------
Jason Smith | 1 | 2
David Johnson | 2 | 4
Billy Hansen | 4 | 3
Randy White | 3 | 5
Wally Mann | NULL | 1
当前查询:
SELECT name,
CASE(WHEN result_event=1 then position else 0 END) Race1,
CASE(WHEN result_event=2 then position else 0 END) Race2,
SUM(position) eventscore
FROM results
GROUP BY name
ORDER BY eventscore DESC
在我当前的查询中,“wally mann”是列表中的第一个,因为(null+1)<(1+2)。在所有有两个结果的赛车手之后,我能做些什么使(null+1)结果排序?
2条答案
按热度按时间ego6inou1#
3bygqnnd2#
将order by更改为按记录数desc排序,然后按eventscore排序