Redshift - Найти средние продажи по месяцам - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть запрос ниже, чтобы найти количество продаж за месяц.

select to_char(sale_date,'Mon') as mon,
count (*) as "Sales"
from sales
where to_char(sale_date,'yyyy-mm-dd') between '2018-10-01' and '2018-12-01'
group by 1

Я пытаюсь найти средние продажи за месяц.Как я мог изменить вышеуказанный запрос, чтобы получить этот вывод.Я использую Redshift.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете запросить CTE и взять среднее значение:

WITH cte AS (
    select to_char(sale_date,'Mon') as mon, count (*) as "Sales"
    from sales
    where to_char(sale_date,'yyyy-mm-dd') between '2018-10-01' and '2018-12-01'
    group by 1
)

SELECT AVG(Sales)
FROM cte;

Обратите внимание, что в идеале вы должны группировать по году и месяцу, поскольку данный месяц может принадлежать более чем одному году.Если вы хотите сохранить текущий запрос, но включить среднее значение за все месяцы, вы можете попробовать:

select
    to_char(sale_date,'Mon') as mon,
    extract(year from sale_date) as year,
    count (*) as "Sales",
    avg(count(*)) over () "AvgSales"
from sales
where to_char(sale_date,'yyyy-mm-dd') between '2018-10-01' and '2018-12-01'
group by 1, 2;
...