实际数据使用中会遇到一些报表数据中的某个列包含汇总信息,例如下表中,每个task会对应一个assignee列,这一列中可能会有多个users,代表当前任务分给了多个人员负责。此时如果想知晓某个员工都被分配了多杀个task时,就无法用当前表单直接获取。

要解决该问题,就要有一张“一个task一个user的”的数据表,按照这个思路,需要先将assignee列进行拆分,之后再对数据进行逆透视(Unpivot)。

拆分很简单,可以直接利用查询编辑器中的拆分功能进行。

拆分完成后,选择Task列,之后点击unpivot other columns对数据进行逆透视,就可以获取一个task对一个user的表单。

数据重新整理之后,就可以到report页面创建一个表显示每个user分配到的工作任务情况。很简单的几部就轻松的把单列汇总信息进行了拆分,重新获得另外角度的聚合数据。

CREATE TABLE T5 (idnum NUMBER,f1 NUMBER(10,5),f2 NUMBER(10,5),f3 NUMBER(10,5),e1 NUMBER(10,5),e2 NUMBER(10,5),h1 NUMBER(10,5),h2 NUMBER(10,5)); INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2) VALUES (1,
create table t_demo(id int,name varchar(20),nums int); ---- 创建表 insert into t_demo values(1, '苹果', 1000); insert into t_demo values(2, '苹果', 2000); insert into t_demo values(3, ...
CREATE TABLE T5 (idnum NUMBER,f1 NUMBER(10,5),f2 NUMBER(10,5),f3 NUMBER(10,5),e1 NUMBER(10,5),e2 NUMBER(10,5),h1 NUMBER(10,5),h2 NUMBER(10,5)); INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2) VALUES (1...
Oracle的 UNPIVOT 操作可以将多 数据转换为单 数据。下面是一个例子: 假设我们有一个表,其中包含以下 :ID、NAME、SALES_Q1、SALES_Q2、SALES_Q3、SALES_Q4。我们想要将SALES_Q1、SALES_Q2、SALES_Q3和SALES_Q4 转换为单个SALES ,并将其与季度相关联。我们可以使用 UNPIVOT 操作来实现这一点。 ```sql SELECT ID, NAME, QUARTER, SALES FROM (SELECT ID, NAME, SALES_Q1, SALES_Q2, SALES_Q3, SALES_Q4 FROM sales_table) UNPIVOT (SALES FOR QUARTER IN (SALES_Q1, SALES_Q2, SALES_Q3, SALES_Q4)); 在上面的查询中,我们首先选择ID、NAME、SALES_Q1、SALES_Q2、SALES_Q3和SALES_Q4 。然后,我们使用 UNPIVOT 操作将SALES_Q1、SALES_Q2、SALES_Q3和SALES_Q4 转换为单个SALES ,并将其与季度相关联。最后,我们选择ID、NAME、QUARTER和SALES