Что-то я туплю

idencial

Одинаковый
Что-то я туплю

Считаю статистику по страницам:

Вытаскиваю линки по которым считать
SELECT DISTINCT url FROM some_tbl
Хиты для страницы считаю
SELECT count(url) as hits FROM some_tbl where url = '$url'

Ес-но значение $url вытаскиваю из первого запроса.
Вывод статистики я делаю по результатам первого запроса, но хотелось бы чтобы он упорядочивал по кол-ву хитов.

САБЖ, так как не вижу другого выхода, нежели сделать еще один SELECT (а когда много записей - не желательно).

Может есть какой-нибудь элегантный способ решения проблемы?
 

C.H.

Guest
Что-то типа этого:
SELECT url,count(url) as hits FROM some_tbl group by url order by hits
 

idencial

Одинаковый
Спасибо.
Просто я хиты в отдельной функции считал.
Теперь о этом придется забыть.
 

idencial

Одинаковый
SELECT url,count(url) as hits FROM some_tbl group by url order by hits
В таком подходе есть следующий недостаток:
Мы получаем статистику для тех url, которые посещали, а те, которые не посещали просто не выводятся.

Когда
SELECT count(url) as hits FROM some_tbl where url = '$url'
мы выдаем статистику для всех url, которые и не посещали.
 

mahoune

Guest
А почему не получаем?! Их нет в таблице some_tbl?!
На первый взгляд, как я понимаю, где-то должен быть полный список всех url или его можно как-то получить! Выходит ты хочешь сказать, что когда делаешь GROUP BY то непосещаемые url не показываются?! Непонятно!
И еще.
order by hits - А так можно? Мне всегда казалось что только так
order by count(url)
 

idencial

Одинаковый
order by hits - А так можно? Мне всегда казалось что только так
order by count(url)
Да, так можно (нельзя в where)
На первый взгляд, как я понимаю, где-то должен быть полный список всех url или его можно как-то получить! Выходит ты хочешь сказать, что когда делаешь GROUP BY то непосещаемые url не показываются?! Непонятно!
Проверял, у меня только те, в которых count(url)>0
 
Сверху