Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / помогите, плиз, с запросом / 5 сообщений из 5, страница 1 из 1
29.03.2007, 22:32
    #34426111
Mseryoga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, плиз, с запросом
Здравствуйте, нужна помощь с SQL запросами.
Есть 2 таблицы(в них информация из логов Апача): log и spiders
log:
ip |url |ua |size
5.6.8.4 |1.html |googlebot/v45 |10
7.5.6.1 |1.html |googlebot |10
4.2.3.5 |2.html |asd/yahoobot.bot/jkj |7
4.5.3.9 |3.html |someagent |9

spiders:
name |spr_ua
google |googlebot
yahoo |yahoobot
msn |msnbot


Необходимо заполнить таблицу(в самом низу), где SE берется из таблицы spiders.name только если строка в log.ua содержит подстроку из spiders.spr_ua. counurl - это количество различных url для одного SE. Size - это сумма log.size для одного SE

SE |counurl |size
google |1 |20
yahoo |1 |7
...
Рейтинг: 0 / 0
30.03.2007, 21:16
    #34428777
Mseryoga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, плиз, с запросом
Разобрался с запросом. вышло, что-то типа:
select b.name as SE, count(a.url) as 'count', sum(a.sr) as 'size' from spiders b, log a where pos(b.ua, a.ua) >0 group by b.name

Вот только как выбрать количество a.url без повтороней?
...
Рейтинг: 0 / 0
02.04.2007, 07:15
    #34430266
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, плиз, с запросом
count(distinct имя_поля) - считает только уникальные значения
...
Рейтинг: 0 / 0
02.04.2007, 16:47
    #34431834
Mseryoga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, плиз, с запросом
Спасибо за ответ.
Проблема была в том, что локальная БД, которую я использовал, не поддерживает этого запроса (несмотря на наличие его в документации). Уже поставил другую…
...
Рейтинг: 0 / 0
07.04.2007, 17:46
    #34445290
Mseryoga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, плиз, с запросом
Возникла еще одна проблема:
Надо сгруппировать одинаковые ИП, с разницей по времени < 30 минутам и отобразить количество сгруппированных ИП?

ИП - это char,
например, есть таблица с ИП и временем:
1.2.3.4 | 1.01.2007 12.55
1.2.3.4 | 1.01.2007 12.45
1.2.3.4 | 1.01.2007 14.54
4.3.2.1 | 1.01.2007 13.45

Должно быть:
1.2.3.4 | 2
1.2.3.4 | 1
4.3.2.1 | 1
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / помогите, плиз, с запросом / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]