# 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()