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

如何在SQL中创建Pivot表?如何通过SQL查询关联两张表?

SQL透视表创建及数据转换方案

1. 如何在SQL中创建Pivot(透视表)?

SQL实现透视表的核心是把行维度的数据转成列,主流有两种实现方式:

  • 用数据库原生的PIVOT关键字(比如SQL Server、Oracle支持),适合已知要转成列的具体值的场景;
  • 用条件聚合(所有数据库通用),写法更灵活,适配各类数据场景。

核心操作步骤:

  • 确定作为行分组的字段(比如日期、类别);
  • 指定要转成列的字段(比如货币ID、产品类型);
  • 搭配对应聚合函数(比如MAX、SUM,若每行对应唯一值,用MAX/MIN即可)。

2. 如何通过SQL查询从第一张表得到第二张表的结果?

假设原始表名为ExchangeRates,提供两种可行写法:

方法一:使用PIVOT关键字(SQL Server/Oracle适用)

SELECT 
    Date,
    [1] AS Currency1,
    [2] AS Currency2
FROM 
    ExchangeRates
PIVOT (
    MAX(Rate)  -- 每个日期+货币ID仅一条数据,MAX/MIN/AVG均可用
    FOR CurrencyID IN ([1], [2])  -- 指定要转成列的CurrencyID值
) AS PivotResult;

方法二:条件聚合(全数据库通用,如MySQL、PostgreSQL)

SELECT 
    Date,
    MAX(CASE WHEN CurrencyID = 1 THEN Rate END) AS Currency1,
    MAX(CASE WHEN CurrencyID = 2 THEN Rate END) AS Currency2
FROM 
    ExchangeRates
GROUP BY 
    Date;

两种写法都能得到目标表结果,条件聚合的通用性更强,无需依赖数据库特定的PIVOT语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:06:32