This commit is contained in:
leo
2023-11-04 18:10:56 +08:00
commit da3b1a9f34
34 changed files with 1082 additions and 0 deletions

30
app/crud/form_crud.py Normal file
View File

@@ -0,0 +1,30 @@
#!/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)