Общие > Базы данных
MySQL COUNT()???
Zotoff:
Пишу статистику для сайта. Хочу сделать отображение реферов. Нужно подсчитать сколько народу перешло от какого сайта. Т.е. каждый хит и хост фиксируется в БД. Нужно выдрать и подсчитать, сколько переходов с какого сайта. Делаю так
SELECT stat_hits.ref,COUNT(stat_hits.id) as hhits ,COUNT(stat_host.id) as hhost FROM stat_hits, stat_host GROUP BY stat_hits.ref, stat_hits.ref ORDER BY hhost DESC LIMIT 20
Понимаю, что наваритил кучу лишнего, но это все что я смог сварить =). Результаты дает явно неверные! В чем ошибка???
Макс:
гораздо полезнее было бы показать дампы таблиц + пояснения к ним (что в каком поле)
Zotoff:
stat_hits и stat_host имеют одну структуру
CREATE TABLE stat_host (
id int(200) NOT NULL auto_increment,
ip varchar(15) NOT NULL default \'\',
agent varchar(100) NOT NULL default \'\',
ref varchar(200) NOT NULL default \'\',
date date NOT NULL default \'0000-00-00\',
time time NOT NULL default \'00:00:00\',
lang char(2) NOT NULL default \'\',
PRIMARY KEY (id)
)
ip, agent, lang, это для статистики. Пока не нужно, просто собираю, для данных. В поле ref пишется HTTP_REFERER. Зачем date и time отдельно, даже не спрашивайте, все равно не смогу объяснить =) т.к. разумного объяснения этому нет.
Макс:
Что то вроде этого :
SELECT ref, COUNT(id) as referers FROM stat_host GROUP BY ref ORDER BY referers
Zotoff:
SELECT ref, COUNT(id) as referers FROM stat_host GROUP BY ref ORDER BY referers
До этого допер сам по манам. Но проблема в другом. Как из 2-х таблиц выдрать, объединить и подсчитать? Т.е. из stat_host и stat_hits?
Навигация
Перейти к полной версии