Questions tagged «pivot»

数据透视表(或交叉表)将行数据转换为列数据,反之亦然。并非所有数据库都支持显式的PIVOT语法,但是可以使用决策逻辑(CASE语句等),聚合函数或扩展来实现功能。

3
将行旋转为多列
我有一个SQL Server实例,该实例具有一个链接服务器到Oracle服务器。Oracle服务器上有一个名为的表,PersonOptions其中包含以下数据: ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ 我需要透视这些数据,因此结果是: ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID ║ OptionA ║ Option B ║ …

3
动态定义维度范围
每当我决定构建一个多维数据集时,我都会遇到一个问题,但是我还没有找到克服它的方法。 问题是如何允许用户自动定义一系列事物,而无需在维度中对其进行硬编码。我将在一个示例中解释我的问题。 我有一个名为客户的表: 这是表中的数据: 我想以数据透视样式显示数据,并在如下所示的定义范围内将薪金和年龄分组: 我编写了此脚本并定义了范围: SELECT [CustId] ,[CustName] ,[Age] ,[Salary] ,[SalaryRange] = case when cast(salary as float) <= 500 then '0 - 500' when cast(salary as float) between 501 and 1000 then '501 - 1000' when cast(salary as float) between 1001 and 2000 then '1001 - 2000' when cast(salary …

4
如何在结果表定义未知的情况下生成透视CROSS JOIN?
给定两个具有未定义的行计数和名称和值的表,我将如何显示CROSS JOIN函数在其值上的透视图。 CREATE TEMP TABLE foo AS SELECT x::text AS name, x::int FROM generate_series(1,10) AS t(x); CREATE TEMP TABLE bar AS SELECT x::text AS name, x::int FROM generate_series(1,5) AS t(x); 例如,如果该函数是乘法,那么我将如何生成一个(乘法)表,如下所示, 所有这些(arg1,arg2,result)行都可以使用 SELECT foo.name AS arg1, bar.name AS arg2, foo.x*bar.x AS result FROM foo CROSS JOIN bar; 因此,这仅是表示的问题,我希望它也可以使用自定义名称 -这个名称不仅是CAST文本的参数而是在表中设置的, CREATE …

3
按范围返回每个日期的列
假设我有表A:BookingsPerPerson Person_Id ArrivalDate DepartureDate 123456 2012-01-01 2012-01-04 213415 2012-01-02 2012-01-07 我需要用以下视图实现: Person_Id ArrivalDate DepartureDate Jan-01 Jan-02 Jan-03 Jan-04 Jan-05 Jan-06 Jan-07 123456 2012-01-01 2012-01-04 1 1 1 1 213415 2012-01-02 2012-01-07 1 1 1 1 1 1 该系统用于举办活动,因此每次酒店预订可能需要1到15天之间的任何时间,但最多不过。任何想法将不胜感激。

3
如何获取同一表上不同列的计数
表#01 Status: StatusID Status ----------------------- 1 Opened 2 Closed 3 ReOpened 4 Pending 表#02 Claims: ClaimID CompanyName StatusID -------------------------------------- 1 ABC 1 2 ABC 1 3 ABC 2 4 ABC 4 5 XYZ 1 6 XYZ 1 预期结果: CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims -------------------------------------------------------------------------------- ABC 2 1 0 1 XYZ …
15 sql-server  pivot 

2
有关PIVOT查询的帮助
我有一个具有以下结构的表: CREATE TABLE [dbo].[AUDIT_SCHEMA_VERSION]( [SCHEMA_VER_MAJOR] [int] NOT NULL, [SCHEMA_VER_MINOR] [int] NOT NULL, [SCHEMA_VER_SUB] [int] NOT NULL, [SCHEMA_VER_DATE] [datetime] NOT NULL, [SCHEMA_VER_REMARK] [varchar](250) NULL ); 一些示例数据(似乎是sqlfiddle的问题。因此,请放置一些示例数据): INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,7,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored …

2
将动态SQL(数据透视查询)转换为xml输出时,为什么日期的第一位转换为unicode?
我使用的是来自Bluefeet的出色示例/dba//a/25818/113298,以创建数据透视并将其转换为xml数据。 声明参数 DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); 接下来是具有大量代码的CTE,将CTE的结果放入临时DB(与示例中相同) SELECT B.[StayDate] -- this is a date dd-mm-yyyy , B.[Guid] INTO #tempDates FROM BaseSelection B 生成col(与示例相同) SELECT @cols = STUFF((SELECT distinct ',' +QUOTENAME(convert(char(10), [StayDate] , 120)) FROM #tempDates FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,''); 结果集是我应该期望的 set @query = 'SELECT …
11 sql-server  xml  pivot 

5
自助加入的替代方法
我在这里提出了一个问题:https : //stackoverflow.com/questions/43807566/how-to-divide-two-values-from-the-same-column-but-at-different-rows 关于从同一表,同一列,不同行划分值的问题。现在,我遇到的问题是,我有更多的分子和分母(具有不同的uns)。仍然是self join解决这一问题在Postgres或有更好的解决方案的好办法? 例: | postcode | value | uns | |----------|-------|-----| | AA | 40 | 53 | | BB | 20 | 53 | | AA | 10 | 54 | | AA | 20 | 55 | | AA | 10 | 56 | | …

2
是否可以在LIKE语句上进行PIVOT
是否可以按表中的元素进行分组(如中所示COLUMN LIKE='Value%')PIVOT?我有一个表[DBT]。[Status],其中包含各种状态(数据库,实例等),并且不想将所有PROD和TEST值作为单个值进行透视/查询,而是将它们分组。 例如代替具有用于状态列Prod,Prod ACC,Prod APP,...等。我将仅有一个包含的值列Name LIKE 'Prod%'和Name LIKE 'Test%'。 到目前为止,我有: 表定义 CREATE TABLE [DBT].[Status]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) …

2
如何用两个相关的“许多”表展平一个表的结果?
我已经对数据库中的某些表进行了重组,以使其更加灵活,但是我不确定如何编写SQL从中提取有意义的数据。 我有以下表格(为简洁起见,略有缩写): CREATE TABLE Loans( Id int, SchemaId int, LoanNumber nvarchar(100) ); CREATE TABLE SchemaFields( Id int, SchemaId int, FieldName nvarchar(255) ); CREATE TABLE LoanFields( Id int, LoanId int, SchemaFieldId int, FieldValue nvarchar(4000) ); 带有以下数据: INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123'); INSERT INTO SchemaFields (Id, SchemaId, …

2
如何在支点中创建经常性的工作日作为列?
我是编程和数据库的新手,对于以下情况的帮助,我将不胜感激。 我在SQL Server中使用PHP。我正在建立一个员工出勤系统,我想创建一个(枢轴)表,其中月份作为行,所有工作日名称作为列(针对特定年份)。单元格中的值将是天数(1、2、3 ... 31)。 单元格的背景色(已存在于表格列中)声明了员工请假的类型。该表有以下栏目:employee_id, leave_date, leave_type, leave_type_color。 我想要达到如下结果: 谢谢。
8 sql-server  php  pivot 

2
如何将多行数据转换为具有多列的行
我有一个这样的MySQL表: User_Id course_name course_location course_id 1 course name 1 location 1 1 1 course name 2 location 2 2 1 course name 3 location 1 3 2 course name 2 location 1 2 2 course name 4 location 4 4 我怎样才能得到这样的结果数据: User_id course 1 course2 course3 course4 1 yes-location1 yes-location2 …
8 mysql  pivot 

1
在MySql中显示每月出勤报告
我正在使用Mysql DB在php中执行学校管理系统。我被困在我的项目中。请任何人提出我做错了什么。 我的数据库中有两个表。一种是存储Students记录,另一种是存储attendance日 现在,我想显示当前月份特定班级所有学生的报告,无论他们是否在场。但是我仅在出勤表中捕获缺席学生的详细信息。 我已经编写了sql查询以在此处显示结果: SELECT tab.class, attend, DATE, ta.rollno, ta.StdNm FROM tbl_absentees tab, tbl_admission ta WHERE ta.Cls = class AND ta.rollno = tab.rollno AND class =22 AND attend = 'A' AND DATE = '2013-06-07'; 结果是: Class Attend RollNo StudentName 但是我想以31天表格的方式显示,如果出席者= A则缺席的日子显示A,否则只显示出勤表中的日期,否则显示剩余天数的'P' 我该如何在mysql中做到这一点?谁能建议/给我一个构想来实现这一目标。 抱歉,我的问题不明确。实际上,我想显示特定月份的出勤报告,其中数据来自两个表: 第一个表由StudentName,RollNo,Class组成 第二个表包含日期,状态,RollNo,类 现在我想显示象报告这样。
8 mysql  pivot 

3
MySQL单表静态和动态数据透视
我有一个看起来像这样的表: +----------------------------------------+ |Name | kode | jum | +----------------------------------------+ | aman |kode1 | 2 | | aman |kode2 | 1 | | jhon |kode1 | 4 | | amir |kode2 | 4 | +--------------------+-----------+-------+ 如何使用MySQL进行这样的视图? kode1 kode2 count aman 2 1 3 jhon 0 4 4 amir 0 4 4
8 mysql  pivot 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.