|
|
|
| Я вот не знаю точно с помощью PHP или MySQL это делается...
Например есть число, которое постоянно изменяется. Нужно вычислить его среднее значение за день, неделю, месяц, год...
Т.е. какое значение оно чаще приниемает за день, неделю, месяц, год соответственно... Как это сделать подскажите пожалуйста? | |
|
|
|
|
|
|
|
для: evgen_17
(03.04.2005 в 21:01)
| | Это можно сделать при помощи встроенной функции MySQL- AVG
| |
|
|
|
|
|
|
|
для: cheops
(03.04.2005 в 21:32)
| | Ок пробую... | |
|
|
|
|
|
|
|
для: 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;
}
?>
|
Не работает, ничего не выводит... | |
|
|
|
|
|
|
|
для: 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;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.04.2005 в 22:18)
| | И как она должна работать? Помоему выводит знчение, которое в данный момент в БД... И как посчитать среднее значение за день неделю... и.т.д....??? | |
|
|
|
|
|
|
|
для: evgen_17
(03.04.2005 в 22:42)
| | А где хранится иноформация по дате и вообще какова структура таблицы? | |
|
|
|
|
|
|
|
для: cheops
(04.04.2005 в 10:38)
| | Структура: (не полная)
id
uid
balance
Дату лучше наверно тоже сюда добавить, а то она вообще в другой таблице записывается... | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|