Сортировка по количеству заполненных ячеек

Рейтинг: 0Ответов: 2Опубликовано: 10.09.2014

День добрый!

У меня есть такой SQL-запрос:

SELECT u.id, u.avatar, u.city, u.f_name, u.s_name, u.notes, u.username,     SUM(b.summ) AS summ
FROM users AS u LEFT JOIN balance AS b ON b.user_id = u.id
WHERE $conditions GROUP BY u.id ORDER BY summ DESC;

Как видите, идёт сортировка по полю summ, но мне также нужно сортировать по заполненности полей, например, два юзера:

  1. Иван Савков NULL NULL 5000
  2. Костя Маликов Москва 1 5000

Как видите оба по 5000, но Иван первый в списке, а мне нужно, чтобы был второй, потому что у него не все поля заполнены.

Вот такая вот задача, спасибо)

Ответы

▲ 1Принят

Надо было заниматься этим немного раньше, вы, конечно, можете попробовать сортировку по 3-му столбцу (где у вас нул и 1, а потом сортировку по 2-му столбцу, SORT - думаю, юзать умеете). А еще проще во время заполнения сделать еще одно поле "приоритетности", чем больше заполнил, тем больше приоритет, и по нему сортировать, и все будет идеально.

▲ 1

А что мешает добавить другие столбцы в сортировку, где может быть NULL, например:

ORDER BY summ DESC, u.notes desc;