### group_by:
根据某个字段进行分组。比如想要根据性别进行分组,来统计每个分组分别有多少人

### having:

having是对查找结果进一步过滤。比如只想要看未成年人的数量,那么可以首先对年龄进行分组统计人数,然后再对分组进行having过滤。示例代码如下:

 # coding:utf-8
# Author: liangjun.chen from datetime import datetime
from sqlalchemy import create_engine, Column, Integer, String, Enum, func from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship, backref HOSTNAME = '127.0.0.1'
PORT = 3306
DATABASE = 'sqlalchemy_first'
USERNAME = 'root'
PASSWORD = '' DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8'.format(
username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE
)
engine = create_engine(DB_URI)
Base = declarative_base(engine)
Session = sessionmaker(engine)
session = Session() class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(50), nullable=False)
age = Column(Integer, default=0)
gender = Column(Enum('male', 'female', "secret"), default='male') def __repr__(self):
return "User<{}>".format(self.username)
# Base.metadata.drop_all()
# Base.metadata.create_all()
#
# user = User(username='saber', age=17, gender='male')
# user2 = User(username='saber2', age=18, gender='male')
# user3 = User(username='saber3', age=18, gender='female')
# user4 = User(username='saber4', age=19, gender='female')
# user5 = User(username='saber5', age=19, gender='female')
#
# session.add_all([user, user2, user3, user4, user5])
# session.commit() # group_by users = session.query(User.age, func.count(User.id)).group_by(User.age)
print users.all() # having
users = session.query(User.age, func.count(User.id)).group_by(User.age).having(User.age>18).all()
print users

最新文章

  1. cluster,network
  2. C++下字符串转换
  3. markdown 基础语法
  4. fedora 19 gnome 3.8 关闭笔记本盖子的动作
  5. 2015年第六届蓝桥杯javaB组 试题 答案 解析
  6. sql server 性能调优之 资源等待PAGEIOLATCH
  7. Java 简单的登录验证码
  8. python数据分析及展示(二)
  9. JDK常用命令(三)jmap
  10. 【原创】重装Windows系统后Android studio无需重装,直接迁移
  11. javascript 表格排序和表头浮动效果(扩展SortTable)
  12. Linux下使用cron让Python程序持久化运行
  13. Vmware ESXi添加共享磁盘
  14. pyDay6
  15. C#调用系统蜂鸣(需要发出警告时挺好用的 即使没有声卡)
  16. CF17E Palisection manacher
  17. Eclipse如何定位到某一个类所在硬盘上的位置
  18. Jquery重新学习之一[加载与属性html(),text(),val()]
  19. HDU5957 Query on a graph(拓扑找环,BFS序,线段树更新,分类讨论)
  20. 【bfs+优先队列】POJ2049-Finding Nemo

热门文章

  1. plsql programming 09 数字
  2. Easyui Form增加myLoad方法,使其支持二级数据对象
  3. 第一百九十二节,jQuery EasyUI 使用
  4. POJ 1426 Find The Multiple &amp;amp;&amp;amp; 51nod 1109 01组成的N的倍数 (BFS + 同余模定理)
  5. android自定义View_2——Making the View Interactive
  6. OpenCV学习笔记十九:opencv_gpu*模块
  7. Android OpenCV集成摄像头图片动态识别车牌号
  8. TP分页
  9. ASP-Command-SQL格式
  10. camke GUI工具 选择 vs2017 时,如何指定工具集 v140 而不是默认的 v141?