я в следующей таблице, которые представляют клиентов для каждого дня:SQL сумма по перегородке за предыдущий период
+----------+-----------+
| Date | Customers |
+----------+-----------+
| 1/1/2014 | 4 |
| 1/2/2014 | 7 |
| 1/3/2014 | 5 |
| 1/4/2014 | 5 |
| 1/5/2014 | 10 |
| 2/1/2014 | 7 |
| 2/2/2014 | 4 |
| 2/3/2014 | 1 |
| 2/4/2014 | 5 |
+----------+-----------+
Я хотел бы добавить еще 2 колонки:
- Резюме клиентов для текущий месяц
- Резюме клиентов за предыдущий месяц
вот желаемый результат:
+----------+-----------+----------------------+------------------------+
| Date | Customers | Sum_of_Current_month | Sum_of_Preceding_month |
+----------+-----------+----------------------+------------------------+
| 1/1/2014 | 4 | 31 | 0 |
| 1/2/2014 | 7 | 31 | 0 |
| 1/3/2014 | 5 | 31 | 0 |
| 1/4/2014 | 5 | 31 | 0 |
| 1/5/2014 | 10 | 31 | 0 |
| 2/1/2014 | 7 | 17 | 31 |
| 2/2/2014 | 4 | 17 | 31 |
| 2/3/2014 | 1 | 17 | 31 |
| 2/4/2014 | 5 | 17 | 31 |
+----------+-----------+----------------------+------------------------+
мне удалось вычислить 3-й столбец с помощью простой суммы по статсумме:
Select
Date,
Customers,
Sum(Customers) over (Partition by (Month(Date)||year(Date) Order by 1) as Sum_of_Current_month
From table
Однако, я не могу найти способ, чтобы вычислить Sum_of_preceding_month колонка.
Цените свою поддержку.
Асаф
Для этого случая я хотел бы иметь значение 0. –
Отправляй сообщение. Похоже на ту же тему. http://stackoverflow.com/questions/8124756/teradata-equivalent-for-lead-and-lag-function-of-oracle –