[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как отсортировать невозможное?
Arch1
Всем привет! Как сделать невозможное?))
Пишу скрипт голосовалки, точнее уже написал, осталось только вот это...
Есть таблица со столбцами:
id (auto increment)
ip
site
vote
ID при каждой записи увеличивается на 1 (ну это понятно).
В IP записывается IP голосовавшего.
В SITE записывается домен, за который проголосовали.
В VOTE записывается 0 если проголосовали против, и 1 если за.

Нужно составить ТОП 100 лучших и ТОП 100 худших сайтов.
Хочу посчитать сколько голосов набрал каждый сайт и вывести 100 самых самых. Как посчитать я знаю:
// Вычисляем голоса ЗА
$resup = mysql_query("SELECT COUNT(*) FROM `voting` WHERE `site`='".$site."' AND vote='1'");
$rowup = mysql_fetch_row($resup);

// Вычисляем голоса ПРОТИВ
$resdown = mysql_query("SELECT COUNT(*) FROM `voting` WHERE `site`='".$site."' AND vote='0'");
$rowdown = mysql_fetch_row($resdown);

По сути можно вывести сначала все записи с уникальным значением поля SITE, затем посчитать сколько голосов набрал каждый и вывести только 100 самых лучших. Но хотелось бы сделать это так сказать "не отходя от кассы" а именно - одним запросом в MySQL
Вот и хотел бы узнать, возможно ли это? Просто записей в таблице будет очень много и выводить все сайты очень муторно... большой объём данных.
Valick
SELECT `site`, COUNT(`vote`) `top`
FROM `voting`
WHERE `vote` = '1'
GROUP BY `site`
ORDER BY `top` DESC
LIMIT
100


как посчитать худших я думаю догадаетесь

_____________
Стимулятор ~yoomoney - 41001303250491
Arch1
Цитата (Valick @ 11.02.2013 - 19:34)
SELECT `site`, COUNT(`vote`) `top`
FROM `voting`
WHERE `vote` = '1'
GROUP BY `site`
ORDER BY `top` DESC
LIMIT
100


как посчитать худших я думаю догадаетесь

Спасибо огромное, серьёзно не думал что это возможно)
Valick
Это очень простой запрос. Есть куда более сложные алгоритмы. Например когда группировка происходит не по всему содержимому поля, а только по данным определенного вида в этом поле.

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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