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

SQL技术问询:如何按Foreign ID分组并将Type列值转为新列

实现SQL行转列:按Foreign ID分组并将Type值转为新列

这是典型的行转列需求,最通用的实现方式是用条件聚合,几乎所有主流SQL数据库(MySQL、PostgreSQL、SQL Server等)都支持,非常适合新手上手。

假设你的表名为your_table,可以用以下SQL语句实现:

SELECT
  "Foreign ID",
  MAX(CASE WHEN Type = 'X' THEN Value END) AS X,
  MAX(CASE WHEN Type = 'Y' THEN Value END) AS Y
FROM your_table
GROUP BY "Foreign ID";

代码说明:

  • GROUP BY "Foreign ID":按Foreign ID分组,确保每个ID只输出一行
  • CASE WHEN Type = 'X' THEN Value END:当Type为'X'时取出对应的Value,否则返回NULL
  • MAX()(或SUM()):聚合函数用来过滤掉NULL值,因为每个分组里每个Type只会有一个有效Value,MAX/SUM都能得到正确的结果

如果你的数据库支持PIVOT语法(比如SQL Server、Oracle),也可以用更简洁的写法,但条件聚合的兼容性更强,适合新手优先掌握。

执行后会得到你期望的输出:

Foreign IDXY
11020
23040

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:15:28