Files
fastapi-demo/app/crud/form_crud.py
2023-11-04 18:10:56 +08:00

31 lines
867 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from sqlalchemy import and_, func
from sqlalchemy.orm import Session
from app.models.form import Form
from app.schemas import FormCreate, FormUpdate
from app.crud.base import CRUDBase
class CRUDForm(CRUDBase[Form, FormUpdate, FormCreate]):
def get_last_bench(self, db: Session, num: int = 10):
# 创建子查询获取每个不同的name的最大id
subquery = (
db.query(self.model.name, func.max(self.model.id).label('max_id'))
.group_by(self.model.name)
.subquery()
)
# 主查询与子查询连接获取每个name的最后一条数据
results = (
db.query(self.model)
.join(subquery, and_(self.model.id == subquery.c.max_id))
.all()
)
return results
form = CRUDForm(Form)