You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计学生A等级次数并关联至已有表的实现方案咨询

学生A等级次数统计及关联表实现方法

以下按不同常用使用场景给出可直接落地的实现方案:

1. 关系型数据库(SQL)实现

步骤1:统计每名学生A等级获得次数

假设你的成绩表名为student_grades,统计逻辑如下,执行后会得到每个学生对应的A等级总次数:

SELECT 
    student,
    COUNT(CASE WHEN grade = 'A' THEN 1 END) AS a_grade_count
FROM student_grades
GROUP BY student;

你提供的样例数据执行后输出结果为:Student1对应2次,Student2对应1次,Student3对应0次

步骤2:关联已有目标表

假设你待关联的另一张表名为student_info,两张表通过student字段(学生唯一标识)关联,使用左连接保证目标表的所有学生记录都保留,A次数为空的学生自动填充为0:

SELECT 
    target.*, -- 可替换为你需要查询的目标表具体字段
    COALESCE(stat.a_grade_count, 0) AS a_grade_total
FROM student_info target
LEFT JOIN (
    SELECT 
        student,
        COUNT(CASE WHEN grade = 'A' THEN 1 END) AS a_grade_count
    FROM student_grades
    GROUP BY student
) stat ON target.student = stat.student;

2. Excel 实现

步骤1:统计A等级次数

使用COUNTIFS函数,假设成绩表的学生列是A列、等级列是B列,统计页的第一个学生名在D2单元格,输入公式后下拉填充所有学生即可:

=COUNTIFS(成绩表!A:A,D2,成绩表!B:B,"A")

步骤2:关联到另一张表

使用VLOOKUP函数匹配统计结果,假设目标表的学生名列是A列,统计结果存放在「A次数统计」表的A-B列,目标表B2单元格输入公式后下拉填充:

=VLOOKUP(A2,'A次数统计'!A:B,2,0)

3. Python Pandas 实现

适用于批量处理数据场景,代码参考如下:

import pandas as pd

# 读取成绩表
grade_df = pd.read_excel("学生成绩表.xlsx")
# 统计A等级次数
a_count = grade_df[grade_df["grade"] == "A"].groupby("student", as_index=False).agg(a_grade_count=("grade", "count"))
# 读取待关联的目标表
target_df = pd.read_excel("待关联表.xlsx")
# 合并关联
result_df = pd.merge(target_df, a_count, on="student", how="left")
# 无A记录的学生填充为0
result_df["a_grade_count"] = result_df["a_grade_count"].fillna(0).astype(int)
# 导出结果
result_df.to_excel("关联结果.xlsx", index=False)

内容的提问来源于stack exchange,提问作者SLee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:24:01