美文网首页Python应用集Python
SQLAlchemy 中的Group By用法

SQLAlchemy 中的Group By用法

作者: Solomon_Xie | 来源:发表于2019-01-15 03:30 被阅读0次

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

    • .filter_by(..)
    • .group_by(..)
    • .having(..)

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

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

    • func.count(..)
    • func.sum(..)

    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
    )
    

    相关文章

      网友评论

        本文标题:SQLAlchemy 中的Group By用法

        本文链接:https://www.haomeiwen.com/subject/jjqirqtx.html