18 lines
776 B
Python
18 lines
776 B
Python
# api/stats
|
|
# 本文件定义统计分析相关的所有 API 路由(Controller 层)
|
|
from itertools import count
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException, Query
|
|
from sqlalchemy.orm import Session
|
|
from typing import List
|
|
|
|
from database import get_db
|
|
from dao.users_dao import UserDAO
|
|
from scheme.statistics_scheme import StatsResponse
|
|
from scheme.users import UserCreate, UserUpdate, UserResponse
|
|
|
|
router = APIRouter()
|
|
# **多维度班级统计**:统计每个班级的总人数,以及按性别(男、女)细分的人数分布。
|
|
@router.get("/class/stats/gender", response_model=List[StatsResponse])
|
|
def get_class_stats(db: Session = Depends(get_db)):
|
|
sbg = db.query(StuInfo.cls_id, count(StuInfo.id)).group_by(StuInfo.cls_id, StuInfo.gender).all() |