Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Сортировка с определением позиции


Автор: Jeick9 15.1.2016, 00:25
Доброе время суток, форумчане.
Собственно, пытаюсь получить порядковый номер при сортировки полей. Нашел такой вот простой рабочий пример, но проблема состоит в том, что значение active бывает одинаковые, и в таком случае номер позиции также совпадает. Подскажите пожалуйста как увеличить значение следующего элемента на 1, при совпадении значения поля active?

Код

SELECT COUNT(*) FROM players WHERE active > (SELECT active FROM players WHERE id = ?)

Автор: Akina 15.1.2016, 09:31
Только использованием переменных. Подробности см. в FAQ на SQL.ru.

Автор: Garmahis 15.1.2016, 14:04
Не совсем понял вопрос... ROW_NUMBER() не поможет?

Автор: Akina 15.1.2016, 14:25
Цитата(Garmahis @  15.1.2016,  15:04 Найти цитируемый пост)
ROW_NUMBER() не поможет? 

ТС не удосужился озвучить диалект. ROW_NUMBER там может просто не быть...

PS. Судя по некоторым косвенным признакам, у него MySQL.

Автор: chip_and_dayl 15.1.2016, 15:17
Цитата(Jeick9 @  15.1.2016,  00:25 Найти цитируемый пост)
 что значение active бывает одинаковые

а почему не использовать вместо поля active поле id? оно то точно уникальное должно быть

Добавлено через 8 минут и 49 секунд
Если только сортировка не по Active идет

Автор: Jeick9 20.1.2016, 10:54
Спасибо, проблема уже решена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)