Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Группировка данных по часам и суткам

Сообщения:  [1-10]   [11-12] 

 
 автор: Евгений Петров   (10.10.2005 в 16:09)   письмо автору
 
   для: Евгений Петров   (10.10.2005 в 16:07)
 

Сам сказал и сам ответил. :) Третью строчку в вашем коде надо заменить на:
$sql=mysql_query("SELECT * FROM counter GROUP BY DATE_FORMAT(time,'%d')");

И все работает. Спасибо!

   
 
 автор: Евгений Петров   (10.10.2005 в 16:07)   письмо автору
 
   для: Евгений Петров   (10.10.2005 в 01:02)
 

Нет не то. Можете сами в этом убедиться если проверите на моей таблице. Вы делите на общее число записей в таблице, а надо только на количесвто дней.

   
 
 автор: Евгений Петров   (10.10.2005 в 01:02)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 20:18)
 

Спасибо буду смотреть.

   
 
 автор: napTu3aH   (09.10.2005 в 20:18)   письмо автору
 
   для: Евгений Петров   (09.10.2005 в 19:48)
 

Спасибо, я воссоздал у себя похожую, можно будет и на вашей попробовать. Искал функцию Мускула возвращающую общее количество строк в таблице, но так и не нашел. Можно обойти, если создать поле id auto_increment, и если записи иэ таблицы не будут удаляться.

SELECT DATE_FORMAT(time,'%H') AS num_hour, 
COUNT(DATE_FORMAT(time,'%H'))/MAX(id) AS avg 
FROM 'counter' 
GROUP BY DATE_FORMAT(time,'%H')

Или писать в два запроса, в первом принимать количество строк, а во втором просто подставить это значение для общего числа строк.

$sql="SELECT * FROM counter";
$num=mysql_num_rows($sql);
$sql="SELECT DATE_FORMAT(time,'%H') AS num_hour, 
COUNT(DATE_FORMAT(time,'%H'))/$num
FROM 'counter' 
GROUP BY DATE_FORMAT(time,'%H')";
$result=mysql_query($sql);

   
 
 автор: Евгений Петров   (09.10.2005 в 19:48)   письмо автору
 
   для: Евгений Петров   (09.10.2005 в 19:23)
 

Если надо вот дамп таблицы:

   
 
 автор: Евгений Петров   (09.10.2005 в 19:23)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 16:49)
 

Нет но если надо сделаю. :)

   
 
 автор: Евгений Петров   (09.10.2005 в 19:23)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 16:49)
 

Нет но если надо сделаю. :)

   
 
 автор: napTu3aH   (09.10.2005 в 16:49)   письмо автору
 
   для: Евгений Петров   (09.10.2005 в 16:27)
 

У вас в таблице присутствует первичный идентификатор? Например "id"

   
 
 автор: napTu3aH   (09.10.2005 в 16:33)   письмо автору
 
   для: Евгений Петров   (09.10.2005 в 16:27)
 

Да действительно, я не внимательно прочитал ваш пост. Этот запрос выводит не среднее значение, а количество поситителей за конкретный час.

   
 
 автор: Евгений Петров   (09.10.2005 в 16:27)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 16:18)
 

Не совсем уверен где именно ошибка, но это не то. т.к. при очередном заходе на сайт среднее значение увеличивается на единицу. А должно где то на 0.01 т.к. статистика ведется уже не один день.

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования