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

如何使用SQL合并测试结果行,实现单条记录对应单个学生测试

测试结果数据合并实现方案

一、数据库SQL实现

通过分组聚合语句直接在数据库中完成数据合并,核心逻辑是按学生姓名+测试名称分组,统计每组的答题总数和答对题数:

SELECT 
    学生姓名,
    测试名称,
    COUNT(*) AS 答题次数,
    SUM(答对情况(0=否,1=是)) AS 答对情况
FROM 
    你的数据表名
GROUP BY 
    学生姓名, 测试名称;

关键说明:

  • GROUP BY 学生姓名, 测试名称:将数据按每个学生的单个测试维度分组
  • COUNT(*):统计分组内的记录条数,即该学生该测试的总答题次数
  • SUM(答对情况(0=否,1=是)):将分组内的答对标记(1为对)求和,直接得到答对题数

二、Python Pandas本地处理

如果需要导出数据到本地处理,用Pandas可以快速完成合并:

import pandas as pd

# 读取数据(实际场景可替换为pd.read_csv/pd.read_excel读取文件)
raw_data = pd.DataFrame({
    '学生姓名': ['Mary', 'Mary', 'Mary', 'Joseph', 'Joseph', 'Joseph', 'Tom', 'Tom', 'Tom'],
    '测试名称': ['Intro Assessment'] * 9,
    '答题次数': [1] * 9,
    '答对情况(0=否,1=是)': [1, 0, 1, 1, 1, 1, 0, 0, 1]
})

# 分组聚合生成结果
merged_result = raw_data.groupby(['学生姓名', '测试名称']).agg(
    答题次数=('答题次数', 'count'),
    答对情况=('答对情况(0=否,1=是)', 'sum')
).reset_index()

# 输出或保存结果
print(merged_result)
# merged_result.to_excel('合并结果.xlsx', index=False)

关键说明:

  • groupby(['学生姓名', '测试名称']):指定分组维度
  • agg():定义每个字段的聚合规则,count统计总答题数,sum统计答对题数
  • reset_index():将分组索引转为普通列,输出格式与期望结果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:24:19