首页 > 数据库 > mysql教程 > 如何在 Oracle SQL 中透视每月数据以便更轻松地进行分析?

如何在 Oracle SQL 中透视每月数据以便更轻松地进行分析?

Mary-Kate Olsen
发布: 2025-01-23 07:37:10
原创
686 人浏览过

How Can I Pivot Flat Monthly Data in Oracle SQL for Easier Analysis?

Oracle SQL 透视表数据重构

问题:转换扁平化表格数据以进行透视分析

假设有一个表格包含按月份组织的数值数据:

<code>MONTH | VALUE
-------|------
1      | 100
2      | 200
3      | 300
...</code>
登录后复制

目标是将此数据转换为透视格式,从而更直观地查看月度值:

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>
登录后复制
登录后复制

Oracle 11g 及以上版本:PIVOT 运算符

Oracle 11g 及更高版本引入了 PIVOT 运算符,可以轻松地进行数据透视。语法如下:

<code>SELECT *
FROM table_name
PIVOT (
  aggregate_function(column_name)
  FOR (pivot_column)
  IN (list_of_values)
);</code>
登录后复制

使用 PIVOT 运算符的示例

考虑以下示例数据:

<code>CREATE TABLE tq84_pivot (
  month NUMBER,
  value NUMBER
);

INSERT INTO tq84_pivot VALUES (1, 100), (2, 200), (3, 300), (4, 400), (5, 500), (6, 600);

SELECT 
  *
FROM 
  tq84_pivot
PIVOT (
  SUM(value) AS sum_value
  FOR (month) IN (1 AS month_jan,
                  2 AS month_feb,
                  3 AS month_mar,
                  4 AS month_apr,
                  5 AS month_mai,
                  6 AS month_jun,
                  7 AS month_jul,
                  8 AS month_aug,
                  9 AS month_sep,
                 10 AS month_oct,
                 11 AS month_nov,
                 12 AS month_dec)
);</code>
登录后复制

结果如预期:

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>
登录后复制
登录后复制

以上是如何在 Oracle SQL 中透视每月数据以便更轻松地进行分析?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板