Рейтинг без дубликатов

Ниже приведена копия моего кода, моя главная цель — получить рейтинг определенных изображений на основе его photo_id. Приведенный ниже код работает отлично, но проблема в том, что, если есть общее количество очков, эти два изображения получают одинаковое ранговое число. Что я действительно хочу, так это то, что если эти изображения имеют одинаковое количество баллов, я хочу ранжировать их по дате. Как я могу сделать это?

SELECT  uo.*,
( SELECT  COUNT(DISTINCT ui.total_points)
FROM    photo_list ui
WHERE   ui.total_points>= uo.total_points
) AS rank
FROM    photo_list uo
WHERE photo_id = :photo_id

Вот как выглядит моя таблица:

id  | photo_id | total_points | date
1      432cfc        0          1403076412
2      fsd324        1          1403076413
3      gd43ds        0          1403076411

Вот мое желание результатов:

   rank  | photo_id | total_points | date
1      fsd324        1          1403076413
2      gd43ds        0          1403076411
3      432cfc        0          1403076412

0

Решение

select * from (
SELECT  uo.*,
(SELECT  COUNT(DISTINCT ui.total_points)
FROM    photo_list ui
WHERE   ui.total_points>= uo.total_points
) AS rank
FROM    photo_list uo
WHERE photo_id = :photo_id
) as alias
order by  total_points,date;
0

Другие решения

Это был бы запрос.

SELECT
( SELECT  COUNT(DISTINCT ui.total_points)
FROM    photo_list ui
WHERE   ui.total_points>= uo.total_points
) AS rank,uo.photo_id,uo.total_points,uo.date1
FROM    photo_list uo
ORDER BY rank ASC, date1 ASC
0

По вопросам рекламы [email protected]