2015-08-17 4 views
0

я хочу запросить турнирную таблицу с результата гонки MotoGPSQL несколько Сортировка графа с критериями

мой SQL является

SELECT `Rider`, `Team`, `Bike`,SUM(`Points`) 
FROM `table_name` 
WHERE `Year` = 2015 AND `Classes` = "MotoGP" 
GROUP BY `Year`,`Rider` 
HAVING SUM(`Points`) 
ORDER BY SUM(`Points`) DESC 

Если 2 или более гонщиков же SUM («Points»), следующий заказ по количеству 1-й гонки. Я поставил положение гонки на поле «Поз».

значение Pos: 1,2,3,4,5 ...

Пожалуйста, помогите для 2-го порядка. Спасибо

ответ

0

Вам просто нужно изменить HAVING положение:

ORDER BY SUM(`Points`) DESC, 
     SUM(RacePosition = 1) DESC 

Для нескольких позиций, я думаю, что нужно добавить условие для каждого из них:

ORDER BY SUM(`Points`) DESC, 
     SUM(RacePosition = 1) DESC, 
     SUM(RacePosition = 2) DESC, 
     SUM(RacePosition = 3) DESC 

В какой-то момент, возможно, SUM(RacePosition) будет делать то, что вы хотите.

+0

Я думаю, что не SUM, мне нужно количество pos = 1 DESC – vincmeister

+0

@ vincmeister. , , Это то, что делает 'sum (pos = 1)'. Но если вы действительно этого хотите, вы можете быть подробным написать 'sum (case, когда pos = 1, затем 1 else 0 end)'. –

+0

спасибо, он работает – vincmeister