试验一、行转列。查询各个部门每个工资段的人数。
with emp_dept as (select dname, empno,sal from emp a join dept b using (deptno)) select * from emp_dept pivot (count(empno) as quantity for sal in (2450 as p2450,1300 as p1300,3000 as p3000,2975 as p2975,800 as p800)) order by dname;
得到结果:
DNAME P2450_QUANTITY P1300_QUANTITY P3000_QUANTITY P2975_QUANTITY P800_QUANTITY 1 ACCOUNTING 1 1 0 0 0 2 RESEARCH 0 0 2 1 1 3 SALES 0 0 0 0 0
比较
通过分组来查询
select dname, sal, count(empno) from emp a join dept b using (deptno) where sal in (2450, 1300, 300, 2975, 800) group by dname, sal
得到结果
DNAME SAL COUNT(EMPNO) 1 ACCOUNTING 1300 1 2 RESEARCH 800 1 3 ACCOUNTING 2450 1 4 RESEARCH 2975 1
二、
多列透视
增加一个聚合,派生列数会增加一倍。
with dept_salary as (select dname, empno, sal from emp a, dept b where a.deptno = b.deptno) select * from dept_salary pivot (count(empno) as sal, sum(nvl(sal, 0)) as sum_prc for sal in(800 as p800, 2975 as p2975, 1250 as p1250)) order by dname;
结果:略。
相关推荐
总的来说,Oracle中的PIVOT和UNPIVOT关键字为数据透视和逆透视提供了强大的语法支持,使得数据转换查询更加直接和高效。这些技术的掌握对于数据库开发人员来说是不可或缺的,特别是在处理复杂报表和数据分析任务时。...
部分SQL版本,如Oracle和SQL Server,提供了内置的PIVOT和UNPIVOT关键字,使得行列转换更为直接。例如,你可以直接在查询中使用PIVOT关键字指定要转换的列和生成的新列,而UNPIVOT关键字则会将多列数据转换为行。 ...
1. "SQL行列转换大全":这是一个关于SQL中行列转换的综合教程,可能涵盖了Pivot和Unpivot操作,以及如何在没有内置Pivot支持的数据库系统中实现类似功能的方法。行列转换在数据分析和报告中极为重要,因为它允许用户...
- SQL Server的`PIVOT`和`UNPIVOT`操作用于数据透视,Oracle也有相应的`PIVOT`和`UNPIVOT`语法。 - Oracle的PL/SQL是一种强大的过程式语言,与SQL Server的T-SQL相似,但语法和特性有所不同。 通过对比这些函数,...
PIVOT和UNPIVOT操作,用于数据透视和展开。 这些只是Oracle SQL学习的一部分,深入掌握这些知识点将极大地提升你在Oracle数据库环境中的操作能力。"chinese"这个文件名可能指的是文档是中文版的,因此对于中文使用...
- **数据透视和反向透视**: 使用PIVOT和UNPIVOT操作符对数据进行转换。 - **谓词**: 用于WHERE子句中的条件表达式。 - **递归查询**: 使用WITH RECURSIVE子句进行递归查询。 - **正则表达式**: 用于模式匹配的函数。...
Pivot和Unpivot操作允许将行转换为列或将列转换为行,这对于数据透视和报表非常有用。 - **Pivot**:将一列或多列的行数据转换为列数据。 - **Unpivot**:将列数据转换为行数据。 ##### CONNECT_BY CONNECT_BY是...
透视表(PIVOT)和解透视表(UNPIVOT)操作可实现数据的旋转,便于分析。 通过深入理解和熟练掌握这些SQL知识点,无论是数据分析师、数据库管理员还是开发人员,都能有效地管理数据库并从中提取有价值的信息。学习...
- **PIVOT 和 UNPIVOT 函数**:这两个函数提供了更灵活的数据透视功能,简化了数据转换的过程,尤其适用于数据分析场景。 #### 六、管理工具和技巧 - **Profiler**:Profiler 是一个非常强大的监控工具,用于捕获 ...
- **透视表和CUBE/ROLLUP**:理解如何使用`PIVOT`或`UNPIVOT`操作将列转换为行,或者使用`CUBE`和`ROLLUP`进行多维数据分析。 此外,你还需要熟悉特定数据库系统的特性,如MySQL、Oracle、SQL Server或PostgreSQL的...