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

使用SQLite将面板数据转换为时间序列数据的查询方法

解决scores表纵向数据转横向的SQL查询问题

你需要把每个赛事(fight_id)、裁判(judge_id)、回合(round)下的两名拳手分数合并到同一行,用条件聚合就能实现,具体SQL语句如下:

SELECT
    fight_id,
    judge_id,
    round,
    MAX(CASE WHEN fighter_id = 1866 THEN n_points END) AS fighter_1866_points,
    MAX(CASE WHEN fighter_id = 896 THEN n_points END) AS fighter_896_points
FROM scores
GROUP BY fight_id, judge_id, round
ORDER BY round;

逻辑说明:

  • 按fight_id、judge_id、round分组,确保每个组对应同一回合、同一裁判下的两名拳手数据
  • 用CASE语句匹配指定拳手ID,提取对应的分数,未匹配的记录会返回NULL
  • 聚合函数MAX会自动忽略NULL值,取出每个组内对应拳手的唯一分数(因为每个分组下每个拳手只有一条记录,用MIN或SUM效果一样)

执行后就能得到你想要的输出格式,完美匹配样本数据的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:16:07