Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
вывод статистики (Sababa) 25/05/2002 - 17:12:33
      Re: вывод статистики (Вик) 25/05/2002 - 20:21:40
      Re: вывод статистики (Вик) 25/05/2002 - 20:26:35
      Re: вывод статистики (IgorK) 26/05/2002 - 07:24:20
      Re: вывод статистики (Вик) 26/05/2002 - 13:09:08

> Original message text:
> From: Sababa - 25/05/2002 - 17:12:33
> Subject:вывод статистики
> -----------------
> Есть табличка:
>
> visit_time datetime
> remote_addr int
>
> нужна статистика по часам типа:
>
> часы hosts
> 00 1
> 01 5
> 02 0
> и т.д.
>
> выборка ala:
> select extract(hour from visit_time) hour, count(distinct remote_addr)
> from ...
> group by extract(hour from visit_time) hour
>
> Проблема:
> GROUP BY extract(hour from visit_time) не очень подходит, так как если в 2 часа не было хостов, то не будет и этой записи, а нужно, чтобы было со значением 0
>
> Как решить sql методами?
>
>
>


From: Вик - 25/05/2002 - 20:21:40
Subject:вывод статистики
-----------------
Хм....
Ну что, поиграем мускулами?

Я ради интереса проштудировал возможности MySQL. И пришёл только к одному методу. Если кто-то предложит эффективней, то замечательно.
А вот что вышло у меня: (perl)

$sth = $dbh->prepare(" SELECT count(distinct remote_addr) FROM table WHERE HOUR(visit_time) = ? ");

foreach $hour (0..23)
{

$sth->execute($hour); # $hour подставляется вместо знака '?' в SELECT
$sth->bind_columns(\$count);
...
...

}

$sth->finish();

Т.е. без цикла всё равно не обойтись. Но есть возможность создать такой вот более эффективный цикл, который работает гораздо быстрей чем обычный, "тупой". Я не тестировал этот код. Плиз, если заработает - напиши здесь об этом!

:)


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
3031



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |