Ежемесячный счет с ежедневными записями - PullRequest
3 голосов
/ 14 мая 2019

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

Данные выглядят примерно так

ACCOUNT     DATA1     DATA2     ISACTIVE      INSERT DATE
1234        XXX       XXXX       1             5/1/2019
1234        XXX       XXXX       1             5/2/2019
1234        XXX       XXXX       1             5/3/2019
1234        XXX       XXXX       1             5/4/2019
5678        XXX       XXXX       1             5/1/2019
5678        XXX       XXXX       1             5/2/2019
5678        XXX       XXXX       1             5/3/2019
5678        XXX       XXXX       1             5/4/2019

Я рассчитываю, что число учетных записей, которые будут активны в месяц (на основе числа 1-го числа каждого месяца), рассчитано примерно на 18 месяцев. Я не уверен, как кодировать это все же.

Я ценю любую помощь

Ответы [ 3 ]

0 голосов
/ 14 мая 2019

Попробуйте это:

SELECT YEAR([INSERT DATE]) AS [Year], MONTH([INSERT DATE]) AS [Month], COUNT(DISTINCT [Account]) AS [UniqueActiveAccounts]
FROM [YourTableName]
WHERE [ISACTIVE] = 1 AND [INSERT DATE] > DATEADD(MONTH,-19,GETDATE())
GROUP BY YEAR([INSERT DATE]), MONTH([INSERT DATE])

Этот запрос возвращает данные 18 месяцев назад с момента его выполнения. Вы можете изменить этот период в DATEADD части запроса.

Вам, конечно, нужно будет ввести название вашей таблицы после ОТ .

0 голосов
/ 14 мая 2019
SELECT Count(DISTINCT account) 
FROM   t 
WHERE  isactive = 1 
GROUP  BY Month(insert_date), 
          Year(insert_date) 
0 голосов
/ 14 мая 2019

Вы можете попробовать группировать по месяцам (ВСТАВИТЬ ДАТУ):

SELECT month([INSERT DATE]) as month_num,count(distinct ACCOUNT) as ACCOUNT_num
from table
group by month([INSERT DATE])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...