Python应用集Python

SQLAlchemy 中的Group By用法

2019-01-15  本文已影响0人  Solomon_Xie

这里我们要用到的query对象的方法:

我们需要额外导入的方法:
from sqlalchemy import func

func方法主要用来做统计,映射到sql语句中具体的统计方法,如:

func方法的格式为:func('字段名').label('显示名')

SQL语句的用法如下:

SELECT school, COUNT(*) AS c FROM persons WHERE gender="male" GROUP BY age

SQLAlchemy中如下:

from sqlalchemy import func

results = sessin.query( Person.school, func.count('*').label('c') ).filter(
    Person.gender=='male'
).group_by( Person.age )

筛选

SQL中针对Group By还可以再进一步筛选,但是要用另一个关键词Having

SQL语句的用法如下:

SELECT school, COUNT(*) AS c FROM persons WHERE gender="male" GROUP BY age HAVING c >1

SQLAlchemy中如下:

nums = func.count('*').label('c')

results = sessin.query( Person.school, nums ).filter(
    Person.gender=='male'
).group_by(
    Person.age
).having(
    nums > 10
)
上一篇下一篇

猜你喜欢

热点阅读