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

基于pymssql的多表SQL查询:选手赛事数据聚合输出需求

整合查询实现选手赛事信息的聚合与格式化输出

完整解决方案代码

# 执行整合后的聚合查询
cursor.execute("""
SELECT 
    c.Name,
    CASE WHEN c.Region = 'PNW' THEN 'Pacific Northwest' ELSE 'Southwest' END AS Full_Region,
    AVG(o.RaceTime) AS Avg_RaceTime,
    COUNT(DISTINCT o.RaceID) AS Race_Count
FROM Contestant c
INNER JOIN Outcome o ON c.ID = o.ID
GROUP BY c.ID, c.Name, c.Region
ORDER BY Avg_RaceTime DESC;
""")

# 按要求格式输出结果
for row in cursor:
    print(f"{row[0]}   {row[1]}   {row[2]:.3f}   {row[3]}")

逻辑拆解

  • 表关联:用INNER JOIN关联Contestant(别名c)和Outcome(别名o),通过选手ID匹配,只保留有参赛记录的选手数据。
  • 地区转换:在查询中用CASE语句直接完成缩写到全名的转换,无需单独查询处理。
  • 聚合计算:AVG(o.RaceTime)计算平均赛事用时,COUNT(DISTINCT o.RaceID)统计参赛次数(去重避免同赛事重复计数)。
  • 分组排序:按选手ID、姓名、地区分组确保唯一选手的聚合结果,ORDER BY Avg_RaceTime DESC实现按平均用时从高到低排序。
  • 格式输出:用f-string格式化输出,{row[2]:.3f}保证平均用时保留三位小数,字段间用三个空格分隔,匹配预期格式。

输出示例

Smith   Pacific Northwest   59.454   7
Kohl   Southwest   54.203   4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:40:17