ฉันต้องการคำสั่ง "จัดกลุ่มและนับ" ใน sqlalchemy ฉันจะทำเช่นนี้ได้อย่างไร?
ฉันต้องการคำสั่ง "จัดกลุ่มและนับ" ใน sqlalchemy ฉันจะทำเช่นนี้ได้อย่างไร?
คำตอบ:
เอกสารเกี่ยวกับการนับกล่าวว่าสำหรับgroup_byคำสั่งจะดีกว่าการใช้งานfunc.count():
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Table.queryทรัพย์สินแทนsession.query():Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
หากคุณกำลังใช้Table.queryทรัพย์สิน:
from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
หากคุณใช้session.query()วิธีการ (ตามที่ระบุไว้ในคำตอบของ miniwark):
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
คุณยังสามารถไว้วางใจได้ในหลายกลุ่มและจุดตัดของพวกเขา:
self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()
คำค้นหาด้านบนจะส่งคืนการนับสำหรับชุดค่าผสมที่เป็นไปได้ทั้งหมดจากทั้งสองคอลัมน์