Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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 Яндекс.Метрика Яндекс цитирования