Forum Webscript.Ru
Общие => Базы данных => Тема начата: Макс от 20 Декабря 2001, 18:43:44
-
Помогите с SELECT-ом.
Есть таблица:
url - адрес
name - название файла
hits - кол-во скачиваний.
name НЕ уникальное, то есть может повторятся (один и тот же файл может лежать на нескольких серверах, соответственно для него может быть несколько записей в таблице).
Нужно SELECT-ом получить не повторяющиеся имена файлов и для каждого суммарное количество скачиваний.
То есть если есть в таблице
http://www.xxx.xxx|pkunzip.zip|20
http://www.list.ru|php.zip|10
http://www.webscript.ru|pkunzip.zip|10
то должно выдать
pkunzip.zip|30
php.zip|10
Пока кроме создания лишней таблицы с полями
name
sumhits
где бы name было уникальным именем файла а sumhits - суммарное количество кликов,
ничего больше в голову не приходит.
-
Хреновина. Можно сделать. Не самое элегантное решение, но работает. Просто голова болит сильно - мешает думать.
Ниже работающий код:
$res = mysql_query("SELECT DISTINCT name FROM trest") or die(mysql_error());
while($nm = mysql_fetch_array($res))
{
$kol = mysql_query("SELECT SUM(pips) AS ps FROM trest WHERE name=\'$nm[name]\'") or die(mysql_result());
$kkol = mysql_result($kol,0,\'ps\');
echo$nm["name"].\'->\'.$kkol.\'
\';
}
-
Hi.
не знаю точно синтаксис, но примерно так:
select name, sum(hits)
from tab
group by 1;
-
Совершенно верно. Я же говорил, что мое решение не самое правильное. Только правильный запрос выглядид так:
SELECT name, sum(hits) AS pps FROM trest GROUP BY name
А потом выводим:
while($nm = mysql_fetch_array($res))
{
echo$nm["name"].\'->\'.$nm["pps"];
}
-
Все оказалось так просто
СПАСИБО!