Получил две таблицы: «saldos_one» и «saldos_two», обе таблицы получили следующие поля: CLIENTID, DATE, VALUE.Объединить результаты и выполнить среднее арифметическое
Я должен получить среднее арифметическое значение TOTAL из среднего арифметического для каждого CLIENTID за несколько периодов времени.
Давайте несколько примеров:
> SELECT * FROM saldos_one;
+----------+------------+---------+
| CLIENTID | DATE | VALUE |
+----------+------------+---------+
| 1 | 2009-08-01 | 1000.00 |
| 1 | 2009-09-01 | 2000.00 |
| 1 | 2009-10-01 | 3000.00 |
| 2 | 2009-08-01 | 1000.00 |
| 2 | 2009-09-01 | 2000.00 |
| 2 | 2009-10-01 | 3000.00 |
| 3 | 2009-08-01 | 1000.00 |
| 3 | 2009-09-01 | 2000.00 |
| 3 | 2009-10-01 | 3000.00 |
| 4 | 2009-08-01 | 1000.00 |
| 4 | 2009-09-01 | 2000.00 |
| 4 | 2009-10-01 | 3000.00 |
+----------+------------+---------+
> SELECT * FROM saldos_two;
+----------+------------+---------+
| CLIENTID | DATE | VALUE |
+----------+------------+---------+
| 1 | 2009-08-01 | 10.00 |
| 1 | 2009-09-01 | 20.00 |
| 1 | 2009-10-01 | 30.00 |
| 2 | 2009-08-01 | 100.00 |
| 2 | 2009-09-01 | 200.00 |
| 2 | 2009-10-01 | 300.00 |
| 3 | 2009-08-01 | 1000.00 |
| 3 | 2009-09-01 | 2000.00 |
| 3 | 2009-10-01 | 3000.00 |
| 5 | 2009-08-01 | 1.00 |
| 5 | 2009-09-01 | 2.00 |
| 5 | 2009-10-01 | 3.00 |
+----------+------------+---------+
После QUERY среднего арифметическое для каждой таблицы:
> SELECT CLIENTID, TRUNCATE(SUM(VALUE)/COUNT(VALUE), 2)
FROM saldos_one
WHERE (DATE BETWEEN '2009-08-01' AND '2009-10-01')
GROUP BY CLIENTID;
+----------+---------+
| CLIENTID | VALUE |
+----------+---------+
| 1 | 2000.00 |
| 2 | 2000.00 |
| 3 | 2000.00 |
| 4 | 2000.00 |
+----------+---------+
> SELECT CLIENTID, TRUNCATE(SUM(VALUE)/COUNT(VALUE), 2)
FROM saldos_two
WHERE (DATE BETWEEN '2009-08-01' AND '2009-10-01')
GROUP BY CLIENTID;
+----------+---------+
| CLIENTID | VALUE |
+----------+---------+
| 1 | 20.00 |
| 2 | 200.00 |
| 3 | 2000.00 |
| 5 | 2.00 |
+----------+---------+
То, что я хотел бы получить этот арифметическое средство для каждого клиента с арифметическим разными таблицы, которые будут:
+----------+---------+
| CLIENTID | VALUE |
+----------+---------+
| 1 | 1010.00 | = 2000.00 + 20.00/2
| 2 | 200.00 | = 200.00 + 200.00/2
| 3 | 2000.00 | = 2000.00 + 2000.00/2
| 4 | 1000.00 | = 2000.00 + 0/2
| 5 | 1.00 | = 2.00 + 0/2
+----------+---------+
РЕШЕНИЕ: См. ответ @ bvr
Это отлично работает! Большое спасибо – Wolfchamane