Цикл SQL через месяцы - PullRequest
       2

Цикл SQL через месяцы

0 голосов
/ 11 октября 2019

Я очень новичок и знаю очень простой SQL, поэтому у меня есть этот вопрос, надеясь, что кто-нибудь может мне помочь.

Вот мой запрос:

SELECT 
    SUM(Amount) AS Paid, 
    COUNT(DISTINCT Count) AS total_Count,
    SUM(Amount) / COUNT(DISTINCT Count) AS Ratio
FROM 
    TableA
WHERE
    Date BETWEEN '2018-01-01' AND '2018-12-30' 

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

Month      Paid     Total      Ratio
--------------------------------------
Jan
Feb
Mar

1 Ответ

2 голосов
/ 11 октября 2019

Вы не упоминаете используемую СУБД, но все они имеют механизм для извлечения названия месяца из даты.

Итак, вы можете сделать что-то вроде

SELECT 
datepart(date, 'Month') as month,
sum(Amount) as Paid, 
count(distinct Count) as total_Count,
sum(Amount) / count(distinct Count) as Ratio
FROM TableA
group by datepart(date, 'Month')

Функция «сгруппировать по» группирует столбцы суммы / количества (в данном случае по месяцам). Возможно, вам придется ограничить даты текущим годом или включить столбец года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...