【发布时间】:2020-01-07 21:15:59
【问题描述】:
我有一个包含用户、类别和注册日期的表,我需要按月和类别获取过去 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 中实现它的方式 --> 但要求是使用 flask-sqlalchemy 进入 mysql(这只是为了提供有关要求的想法)
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)
我已经参考了以下链接,但未能按照我的要求进行转换...
Group by & count function in sqlalchemy
MySQL get quantities from last 12 months grouped by month
期待这样的输出。
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
【问题讨论】:
-
用
limit(12).all()代替first(12)。
标签: python sqlalchemy flask-sqlalchemy