Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подсчитать сумму для каждого месяца / 15 сообщений из 15, страница 1 из 1
23.03.2021, 09:16
    #40056111
Armoriel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Всем привет.
Я не очень понимаю, как подсчитать сумму для каждого месяца. Например за '2015-10' и '2016-10'. Датасет приложил.
...
Рейтинг: 0 / 0
23.03.2021, 09:40
    #40056116
Armoriel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Разобрался.
...
Рейтинг: 0 / 0
23.03.2021, 10:15
    #40056124
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Armoriel,

Молодец. Обращайся если что.
...
Рейтинг: 0 / 0
23.03.2021, 12:37
    #40056207
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Надо ответ написать. Это будет честно по отношению к другим читателям форума.
...
Рейтинг: 0 / 0
24.03.2021, 05:12
    #40056525
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
mayton
Надо ответ написать


Отрыл функцию, которая выдирает из даты месяц, да сделал group by с суммой по ней. Операция элементарная, просто мозги в процессе работы впали в ступор, а написание поста на форум помогло выйти из тупикового цикла.
...
Рейтинг: 0 / 0
25.03.2021, 13:32
    #40056866
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
crutchmaster
mayton
Надо ответ написать


Отрыл функцию, которая выдирает из даты месяц, да сделал group by с суммой по ней. Операция элементарная, просто мозги в процессе работы впали в ступор, а написание поста на форум помогло выйти из тупикового цикла.

А можно примерчик?
За ранее благодарна!
...
Рейтинг: 0 / 0
25.03.2021, 13:54
    #40056870
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Cola,
вот. если кому-то понадобится
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
EXTRACT ('day' from  "data") AS "day", 
EXTRACT ('month' from  "data") AS "manth", 
EXTRACT('year' from "data") AS "year",  
    SUM(val) AS summ
FROM scheta 
 G
ROUP BY 
  "day",
  "manth", 
  "year"
  Order by "year","manth","day"
...
Рейтинг: 0 / 0
25.03.2021, 14:40
    #40056883
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
А если так?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
 date_trunc('day', "data"),
 sum(val) as sum
from 
 scheta
group by 
 date_trunc('day', "data")
ordr by 
 date_trunc('day', "data")



Не тестил. Может где-то синтаксически ошибся.
...
Рейтинг: 0 / 0
25.03.2021, 20:22
    #40057011
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Есть другой вопрос. Предположим, что не для каждого месяца есть результат, но нужно что бы отображались все месяцы. Соответственно месяцы без результата с нулями. Как сие сделать.
Какие мысли есть? Всем за ранее спасибо!
...
Рейтинг: 0 / 0
26.03.2021, 04:30
    #40057072
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Cola
Какие мысли есть? Всем за ранее спасибо!

Кто-то делает на субд то, что делать на ней не надо.
Cola
Есть другой вопрос. Предположим, что не для каждого месяца есть результат, но нужно что бы отображались все месяцы.

Делать таблицу/генерировать выборку с месяцами и делать left join с ней.
...
Рейтинг: 0 / 0
26.03.2021, 12:28
    #40057132
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
join-нить c

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select * from generate_series('2021-01-01','2022-01-01','1 months'::interval);
    generate_series     
------------------------
 2021-01-01 00:00:00+00
 2021-02-01 00:00:00+00
 2021-03-01 00:00:00+00
 2021-04-01 00:00:00+00
 2021-05-01 00:00:00+00
 2021-06-01 00:00:00+00
 2021-07-01 00:00:00+00
 2021-08-01 00:00:00+00
 2021-09-01 00:00:00+00
 2021-10-01 00:00:00+00
 2021-11-01 00:00:00+00
 2021-12-01 00:00:00+00
 2022-01-01 00:00:00+00
...
Рейтинг: 0 / 0
26.03.2021, 14:17
    #40057156
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Guzya, Спасибо!!!
...
Рейтинг: 0 / 0
26.03.2021, 15:50
    #40057182
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Guzya
join-нить c

Код: sql
1.
2.
3.
4.
5.
6.
select * from generate_series('2021-01-01','2022-01-01','1 months'::interval);
    generate_series     
------------------------
 2021-01-01 00:00:00+00
 2021-02-01 00:00:00+00
 


А подскажите как приджоинить запрос?
Всем за ранее спасибо!
...
Рейтинг: 0 / 0
26.03.2021, 16:52
    #40057209
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
На вскидку

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
select 
  date_trunc('month',d)
  ,sum_pay
  ,cn 
from generate_series('2020-01-01','2022-05-01','1 months'::interval) as d 
left join 
(  select
    date_trunc('month', ts) as ts
    , sum(pay) as sum_pay
    , count(*) as cn 
  from test group by  date_trunc('month', ts)
) as p on p.ts=date_trunc('month',d);


       date_trunc       | sum_pay | cn 
------------------------+---------+----
 2020-01-01 00:00:00+00 |      45 |  3
 2020-02-01 00:00:00+00 |      15 |  1
 2020-03-01 00:00:00+00 |         |   
 2020-04-01 00:00:00+00 |      30 |  2
 2020-05-01 00:00:00+00 |         |   
 2020-06-01 00:00:00+00 |         |   
 2020-07-01 00:00:00+00 |      30 |  2
 2020-08-01 00:00:00+00 |         |   
 2020-09-01 00:00:00+00 |         |   
 2020-10-01 00:00:00+00 |         |   
 2020-11-01 00:00:00+00 |         |   
 2020-12-01 00:00:00+00 |         |   
 2021-01-01 00:00:00+00 |      30 |  2
 2021-02-01 00:00:00+00 |         |   
 2021-03-01 00:00:00+00 |         |   
 2021-04-01 00:00:00+00 |         |   
 2021-05-01 00:00:00+00 |         |   
 2021-06-01 00:00:00+00 |         |   
 2021-07-01 00:00:00+00 |         |   
 2021-08-01 00:00:00+00 |         |   
 2021-09-01 00:00:00+00 |         |   
 2021-10-01 00:00:00+00 |         |   
 2021-11-01 00:00:00+00 |         |   
 2021-12-01 00:00:00+00 |         |   
 2022-01-01 00:00:00+00 |         |   
 2022-02-01 00:00:00+00 |         |   
 2022-03-01 00:00:00+00 |         |   
 2022-04-01 00:00:00+00 |         |   
 2022-05-01 00:00:00+00 |         |   
...
Рейтинг: 0 / 0
26.03.2021, 17:08
    #40057223
Cola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать сумму для каждого месяца
Guzya, еще раз спасибо!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подсчитать сумму для каждого месяца / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]