Помогите составить SQL запрос @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 19 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Заголовок сообщения: Помогите составить SQL запрос
Сообщение Добавлено: 3 Февраль 2005, 17:27:42 
Есть таблица со статистикой посещений со следующими полями:

id | sess_id | metrika_visitor | ip | referrer …. и тп

sess_id - сессия
metrika_visitor - ID пользователя, который для новых посетителей пустой, а потом им выставляется куки. То есть любой второй хит пользователя со включенными куки уже заполняет поле metrika_visitor уникальным ID.

1. посчитать общее количество посетителей.

у меня запрос такой:

новые посетители:
SELECT count(sess_id) as newvis FROM table WHERE metrika_visitor = '' GROUP BY sess_idж

остальные посетители:
SELECT count(metrika_visitor) as othervis FROM table WHERE metrika_visitor <> '' GROUP BY metrika_visitor;

сложив newvis и othervis должны вроде как получить посетителей. Получаем ерунду.
Делал через count() GROUP BY потому что distinct глючный в некоторых версиях mysql.

2. Каким образом получить ядро посетителей? То есть у кого количество возвратов в заданный интервал (неделя, месяц, год) больше 2х. ВОзможно есть другие варианты подсчета ядра ?!

3. Как считать пути по сайту ? Я полагаю нужно получить отдельные выборки, сгруппированные по сессиям. Потом их уже в PHP объединять ?! Как мне кажется достаточно долгий по времени процесс.

4. Как определить среднее время, проведенное за сессию с помощью MYSQL запроса? То есть как получить выборку разностей первого и последнего хита для каждой сессии ???? Это, пожалуй, самое сложное для меня.

Если кто может помочь с запросами - большое тем спасибо.

_________________
--
Yes!
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 4 Февраль 2005, 00:03:00 
начнем с того, что никто не считает посетителей количеством сессий.
уникальные посещения принято считать за день.

А продолжем тем, что поинтересуемся у автора, каким образом он заставил 100% посетителей своего сайта возвращать куки.
Jamakaser Муж.
участник
91
Сообщения: 1163
Зарегистрирован: 26.01.05
Сообщение Добавлено: 4 Февраль 2005, 12:07:33 
Сложно как-то все у тебя.
Напиши какие у тебя цели, простым и понятным текстом.
Нужно сразу перед началом представлять что тебе нужно.
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 4 Февраль 2005, 13:04:42 
Приведи полный формат и логику таблицы.
Одна запись в табице = один хит, так?
sess_id и metrika_visitor друг друга исключают?

Ну и главный вопрос: почему бы не использовать готовое решение? ;)
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 7 Февраль 2005, 10:40:21 

<sergio.ga> писал(а):
Приведи полный формат и логику таблицы.
Одна запись в табице = один хит, так?
sess_id и metrika_visitor друг друга исключают?


sess_id - это сессия пользователя в ее привычном понимании (PHPSESSID). Пользователь может каждый день заходить на сайт и у него будут разные сессии. При этом данного посетителя никак кроме как по IP (что чрезвычайно неточно) не определить: куда он ходил и что купил.

metrika_visitor - это уникальный ID пользователя, сохраняющийся в куки пользователя. Заходя повторно на сайт, пользователь идентифицируется как "тот самый, который уже был" и можно проследить его поведение за всю историю работы статистики. В частности: от захода до покупки или какой-то другой целевой страницы.
Предваряя много выпадок в адрес того, что куки ставятся не у всех, 97-98% от всех посетителей - более чем достаточно.


<sergio.ga> писал(а):
Ну и главный вопрос: почему бы не использовать готовое решение? ;)


Странный вопрос. Я думал тут форум программистов.

_________________
--
Yes!
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 7 Февраль 2005, 10:41:05 

Чебурген писал(а):
А продолжем тем, что поинтересуемся у автора, каким образом он заставил 100% посетителей своего сайта возвращать куки.


А где я написал про 100% ?

_________________
--
Yes!
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 7 Февраль 2005, 10:47:32 

Jamakaser писал(а):
Сложно как-то все у тебя.
Напиши какие у тебя цели, простым и понятным текстом.
Нужно сразу перед началом представлять что тебе нужно.



Простым и понятным языком - это обычно сложно и трудно :laugh:
Хорошо. Видно сообщения с большим объемом текста плохо усваиваются сразу :)

Задача номер 1: отбразить пути пользователей по сайту. Пример можно посмотреть на SpyLog'е или HotLog'е.

То есть нужно отобразить несколько наиболее популярных маршрутов, перечень "входных" страниц и "выходных" страниц.

Меня инетресует вопрос как это моджно сделать? Да, я могу взять всю выборку из базы данных и строить дерево путей по сайту на чистом PHP. Но при 500 000 записях в БД это мне видится не лучшим вариантом. Видимо есть вариант на SQL получать отдельные выборки по путям. Мерджить их и выбирать после этого наиболее популярные.

Так вот, вопрос. Кто-нибудь писал свою статистику с отображением путей по сайту ?

Спасибо.

_________________
--
Yes!
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 7 Февраль 2005, 11:45:18 

CTR писал(а):

<sergio.ga> писал(а):
Ну и главный вопрос: почему бы не использовать готовое решение? ;)


Странный вопрос. Я думал тут форум программистов.


Хороший программист - ленивый программист.
Мне просто не совсем понятно желание убить своё время на реализацию функциональности предоставляемой готовыми решениями, которые идут в комплекте практически к любому хостингу.

Ну да ладно.
Решение задачи поиска маршрутов ИМО в любом случае требует анализа всей статистики. Ну а как именно это делать - за один раз или отдельными выборками - это вам решать.
Альтернативно, можно строить маршруты отдельно от статистики в момент посещения пользователем страниц сайта.
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 7 Февраль 2005, 16:22:30 

<sergio.ga> писал(а):
Мне просто не совсем понятно желание убить своё время на реализацию функциональности предоставляемой готовыми решениями, которые идут в комплекте практически к любому хостингу.


Вы имеете ввиду Webalizer? А где там пути по сайту?


<sergio.ga> писал(а):
Решение задачи поиска маршрутов ИМО в любом случае требует анализа всей статистики. Ну а как именно это делать - за один раз или отдельными выборками - это вам решать.
Альтернативно, можно строить маршруты отдельно от статистики в момент посещения пользователем страниц сайта.


Видимо, разумно это делать в оффлайне.

_________________
--
Yes!
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 8 Февраль 2005, 01:54:42 

CTR писал(а):

Чебурген писал(а):
А продолжем тем, что поинтересуемся у автора, каким образом он заставил 100% посетителей своего сайта возвращать куки.


А где я написал про 100% ?


Вот здесь.

Цитата:
сложив newvis и othervis должны вроде как получить посетителей.


И я не люблю, когда игнорируют то, что я написал
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 8 Февраль 2005, 01:59:00 

Цитата:
Так вот, вопрос. Кто-нибудь писал свою статистику с отображением путей по сайту ?


Так вот вопрос. Кое-кто не пытался ли формализовать термин "перемещения по сайту" на чуть более детальном уровне, чем "как в спайлоге"?
Рекомендую.
А там, глядишь - и запрос сам составится...
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 8 Февраль 2005, 10:03:46 

Чебурген писал(а):

CTR писал(а):
А где я написал про 100% ?


Вот здесь.

Цитата:
сложив newvis и othervis должны вроде как получить посетителей.



Я повторю вопрос: где я написал про 100% ?


Чебурген писал(а):
И я не люблю, когда игнорируют то, что я написал


Люблю/не люблю - это в детском саду. Я ответил на все сообщения, которые мне писали. И про куки тоже.

_________________
--
Yes!
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 8 Февраль 2005, 10:27:14 

Чебурген писал(а):

Цитата:
Так вот, вопрос. Кто-нибудь писал свою статистику с отображением путей по сайту ?


Так вот вопрос. Кое-кто не пытался ли формализовать термин "перемещения по сайту" на чуть более детальном уровне, чем "как в спайлоге"?
Рекомендую.
А там, глядишь - и запрос сам составится...


Здесь вопрос не формализации, а имплементации. Задача уже давно формализована и разночтений здесь нет и быть не может. А если от "воды", которой изобилуют Ваши сообщения вернуться, наконец, к "сухому остатку" (читай к теме сообщения), то можете ли Вы предложить что-то конкретное? У меня уже складывается впечатление, что нет :)

Итак, вот уже в третий раз повторю вопрос:

Есть mysql таблица со следующими полями:

… | referrer | query | sess_id | metrika_visitor | …

как лучше имплементировать процесс формирования путей посетителей по сайту?

вариант а) прочитать всю таблицу в ассоциативный массив и начать построение дерева путей с расстановкой частоты появления пути в выборке. (здесь весь процесс обработки данных ведется в PHP скрипте) -- решение в лоб. Мне не особенно импонирует.
b) Ваш вариант ?

_________________
--
Yes!
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 8 Февраль 2005, 17:52:09 

Цитата:
Здесь вопрос не формализации, а имплементации


отлично.
какая конкретно проблема возникла при имплементации "давно формализованной без разночтений задачи" в конкретный SQL-запрос?
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 8 Февраль 2005, 17:58:19 
Для тех, кто не понимает, что он делает, я поясню
Формализовывать надо не задачу, а решение.
это первый шаг на пути составления алгоритма.
если, конечно, такое слово известно моему уважаемому собеседнику.
который не может отличить количество сессий от количества посещений.
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 8 Февраль 2005, 19:17:32 

CTR писал(а):

<sergio.ga> писал(а):
Мне просто не совсем понятно желание убить своё время на реализацию функциональности предоставляемой готовыми решениями, которые идут в комплекте практически к любому хостингу.


Вы имеете ввиду Webalizer? А где там пути по сайту?


В Webalizer есть точки входа/выхода, что при умелом использовании тоже немало, а в Urchin, к примеру, есть и пути. Да и кроме этих двух достаточно и анализаторов логов и готовых статистических скриптов.
CTR
новый человек
0
Сообщения: 8
Зарегистрирован: 03.02.05
Сообщение Добавлено: 9 Февраль 2005, 11:10:48 

<sergio.ga> писал(а):
В Webalizer есть точки входа/выхода, что при умелом использовании тоже немало, а в Urchin, к примеру, есть и пути. Да и кроме этих двух достаточно и анализаторов логов и готовых статистических скриптов.


Разве Urchin бесплатный ?

Сдаюсь! :laugh: Закрываем тему.

_________________
--
Yes!
Ainur Муж.
соучастник
16
Сообщения: 731
Зарегистрирован: 15.09.04
Откуда: Italia
Сообщение Добавлено: 12 Февраль 2005, 03:35:50 
А почему нет поля время и дата? Как вы узнаете, когда пользователь, пришел на какую страницу?
Я не думаю, что кто либо на этом форуме в состоянии вам разложить от а, до я, весь алгоритм написания такой вот фигни.
Как узнать путь? Я бы считал по ip или уникальному id определенного пользователя в текущей сессии и дате – времени + от куда и куда пришел, и делал путь исходя из этих данных.
Я так понял эта цель, которую вы преследуете, а не подсчитать уникальные визиты?
И еще думаю, что один SQL запросом вы ничего не добьетесь.
Советую посмотреть, как сделали другие, а не говорить, что думал это форум для программистов.
mnemonic
новый человек
0
Сообщения: 55
Зарегистрирован: 15.02.05
Откуда: как все, из утробы
Сообщение Добавлено: 17 Февраль 2005, 11:48:35 

NOT NULL писал(а):
Как узнать путь? Я бы считал по ip или уникальному id определенного пользователя в текущей сессии и дате – времени + от куда и куда пришел, и делал путь исходя из этих данных.



Если у вас есть для каждой записи (хита) номер сессии, то пути по сайту извлекаются элементарно:

делается select sess_id, page...order by time
для всего временного диапазона, и составляется ассоциативный массив

paths[sess_id][]=page для каждой записи.

page - адрес страницы, открытой пользователем
sess_id - сессия

после прохода по всем записям у вас получается paths, в котором для каждой сессии записан путь. Уже хорошо.

Далее не сложно додумать, как можно отсортировать пути по популярности.

_________________
http://sale.qpl.ru - профессиональная доска объявлений
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 19 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100