У меня есть таблица, которая содержит user, category и register_date, у меня есть требование, чтобы получить количество групп пользователей по месяцам и категориям за последние 12 месяцев.
user register_date category
a 1/7/2020 1
b 2/8/2020 1
c 1/9/2020 1
d 2/10/2020 2
e 1/11/2020 2
f 2/12/2020 2
g 2/13/2020 3
h 1/14/2020 3
e 1/11/2020 1
f 2/12/2020 1
g 2/13/2020 2
h 1/14/2020 3
e 1/11/2020 3
f 2/12/2020 1
Я пробовал что-то подобное. Я буквально перепутал с кодом ...
@classmethod
def cont_user(cls):
return cls.query(cls.user.count(), ).group_by(extract('year', cls.registerd_date),
extract('month', cls.registered_date)).first(12)
вот так я его добиваюсь в MS SQL -> но мне нужно попасть в mysql с flask -sqlalchemy (это только для дать представление о требовании)
SELECT count([UserName]) as user, DATENAME(month, [Registered_date]) + '-' + CAST(YEAR([Registered_date]) AS nvarchar) as my, [category]
FROM [database].[dbo].[user_table] group by [category], DATENAME(month, [Registered_date]) + '-' + CAST(YEAR([Registered_date]) AS nvarchar)
Я уже ссылался на ссылки ниже, но не смог преобразовать в соответствии с моим требованием ...
Функция группировки по & count в sqlalchemy
MySQL получить количества за последние 12 месяцев, сгруппированные по месяцам
с ожидаемым результатом примерно так.
count month-year category
10 Jan-19 1
15 Jan-19 2
20 Jan-19 3
12 Feb-19 1
14 Feb-19 2
19 Feb-19 3
9 Mar-19 1
19 Mar-19 2
24 Mar-19 3