【发布时间】:2015-03-16 07:18:40
【问题描述】:
我想显示下表的数据透视表(交叉表)。
表:Employee
CREATE TABLE Employee
(
Employee_Number varchar(10),
Employee_Role varchar(50),
Group_Name varchar(10)
);
插入:
INSERT INTO Employee VALUES('EMP101','C# Developer','Group_1'),
('EMP102','ASP Developer','Group_1'),
('EMP103','SQL Developer','Group_2'),
('EMP104','PLSQL Developer','Group_2'),
('EMP101','Java Developer',''),
('EMP102','Web Developer','');
现在我想显示上述数据的数据透视表,如下所示:
预期结果:
Employee_Number TotalRoles TotalGroups Available Others Group_1 Group_2
---------------------------------------------------------------------------------------------------
EMP101 2 2 1 1 1 0
EMP102 2 2 1 1 1 0
EMP103 1 2 1 0 0 1
EMP104 1 2 1 0 0 1
说明:我想显示每个员工拥有的Employee_Number,TotalRoles,
TotalGroups 显示给所有员工,Available 显示可用的员工
在多少组中,Others 必须显示该员工在其他组中也可用
group_name 尚未分配,最后Group_Names 必须以数据透视格式显示。
【问题讨论】:
-
问题/问题是什么?
-
问题在解释上。但我真的不明白最后 4 列计算
-
@Houari 我只看到预期的结果,而不是问题或问题。
标签: sql postgresql pivot-table postgresql-9.3 table-functions