[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка результата согласно сумме значений весов
Sergey Lomov
Стоит задача сделать запрос к MySQL, отсортировав выдачу по запросу согласно сумме весов key, если запрашивается несколько key одновоременно или просто весу, если key только один, чтобы получить множество id (не должны повторяться).

Значит, есть таблица table:

Код
id      key     weight
-------------------------------------------
1        1           1
1        2           4
2        1           3
2        3           0
3        4           2


Как сделать запрос к MySQL таким образом, чтобы на выходе получилась выдача множества id, отсортированных по сумме весов weight, склеенных относительно key?

Например:

Задаем key со значением 1 на выходе получаем выдачу:

Код
id      sum(weight для key=1) ORDER BY sum(weight для key=1)
------------------------------------------
1                1
2                3



Задаем key со значением 1 или 2 на выходе получаем:

Код
id      sum(weight для key=1 || key=2) ORDER BY sum(weight для key=1 || key=2)
------------------------------------------
2               3
1               5



Колонка sum(weight для key=1) и sum(weight для key=1 || key=2) это результат работы MySQL по суммированию weight, относительно которых будет проходить сортировка выдачи id.

В результате запрос должен получиться типа такого (который сейчас, естественно, не работает):

SELECT id FROM table WHERE key=1 || key=2 ORDER BY weight AS SUM



Помогите советом. Какой запрос к MySQL должен быть? dumau.gif


Заранее спасибо за дельные советы.



Спустя 49 минут, 56 секунд (31.07.2008 - 10:15) sergeiss написал(а):
Если я правильно понял вопрос, запрос должен быть таким:

SELECT ID, SUM( WEIGHT)
WHERE KEY=1
GROUP BY ID
ORDER BY ID

Для обоих ключей задаем WHERE KEY=1 OR KEY=2, можно писать разные условия, например WHERE KEY>=1 AND KEY<=3. Ну, и все возможные комбинации условий smile.gif

При этом мы:
1. Выбираем для определеных KEY
2. Группируем по ID
3. Находим сумму весов в каждой группе (т.е. для каждого ID)
4. Сортируем по ID
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.