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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Вычисление среднего значения.
 
 автор: evgen_17   (03.04.2005 в 21:01)   письмо автору
 
 

Я вот не знаю точно с помощью PHP или MySQL это делается...
Например есть число, которое постоянно изменяется. Нужно вычислить его среднее значение за день, неделю, месяц, год...
Т.е. какое значение оно чаще приниемает за день, неделю, месяц, год соответственно... Как это сделать подскажите пожалуйста?

   
 
 автор: cheops   (03.04.2005 в 21:32)   письмо автору
 
   для: evgen_17   (03.04.2005 в 21:01)
 

Это можно сделать при помощи встроенной функции MySQL- AVG
SELECT AVG(num) FROM tbl

   
 
 автор: evgen_17   (03.04.2005 в 21:55)   письмо автору
 
   для: cheops   (03.04.2005 в 21:32)
 

Ок пробую...

   
 
 автор: evgen_17   (03.04.2005 в 22:09)   письмо автору
 
   для: evgen_17   (03.04.2005 в 21:55)
 

Попробовал вот так...
    
<?    
$balance 
mysql_query("SELECT AVG(balance) FROM Balance_User WHERE uid='$uid' AND '$balance_u'=balance");
            if (
$balance)
                {
                    echo 
$balance_u;
                }
?>

Не работает, ничего не выводит...

   
 
 автор: cheops   (03.04.2005 в 22:18)   письмо автору
 
   для: evgen_17   (03.04.2005 в 22:09)
 

Так а зачем вы жёстко balance фиксируете? Попробуйте лучше сгруппировать по uid:
<?     
  $balance 
mysql_query("SELECT AVG(balance) FROM Balance_User WHERE uid='$uid' ORDER BY uid"); 
   if (
$balance
   { 
      
$res mysql_result($balance,0);
      echo 
$res
   } 
?>

   
 
 автор: evgen_17   (03.04.2005 в 22:42)   письмо автору
 
   для: cheops   (03.04.2005 в 22:18)
 

И как она должна работать? Помоему выводит знчение, которое в данный момент в БД... И как посчитать среднее значение за день неделю... и.т.д....???

   
 
 автор: cheops   (04.04.2005 в 10:38)   письмо автору
 
   для: evgen_17   (03.04.2005 в 22:42)
 

А где хранится иноформация по дате и вообще какова структура таблицы?

   
 
 автор: evgen_17   (04.04.2005 в 11:06)   письмо автору
 
   для: cheops   (04.04.2005 в 10:38)
 

Структура: (не полная)
id
uid
balance
Дату лучше наверно тоже сюда добавить, а то она вообще в другой таблице записывается...

   
 
 автор: cheops   (05.04.2005 в 00:45)   письмо автору
 
   для: evgen_17   (04.04.2005 в 11:06)
 

Пусть дата хранится в поле puttime, тогда запрос на выборку среднего значения может выглядеть следующим образом
SELECT AVG(balance) 
FROM Balance_User 
WHERE uid='$uid' AND
puttime>'2004-05-19 00:00:00' AND
puttime<'2004-06-19 00:00:00'
GROUP BY uid


PS В предыдущем посте я опечатался, следует писать не ORDER BY, а GROUP BY.

   
Rambler's Top100
вверх

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