标签: pivot

使用Tablefunc在多列上进行透视

有没有人过去常常使用tablefunc多个变量,而不是只使用行名文档说明:

对于具有相同row_name值的所有行,"额外"列应该是相同的.

我不知道如何在没有组合我想要转向的列的情况下如何做到这一点(我非常怀疑它会给我我需要的速度).一种可能的方法是将实体设为数字,并将其作为毫秒添加到localt,但这似乎是一种不稳定的方式.

我编辑了回答这个问题的数据:PostgreSQL Crosstab Query.

 CREATE TEMP TABLE t4 (
  timeof   timestamp
 ,entity    character
 ,status    integer
 ,ct        integer);

 INSERT INTO t4 VALUES 
  ('2012-01-01', 'a', 1, 1)
 ,('2012-01-01', 'a', 0, 2)
 ,('2012-01-02', 'b', 1, 3)
 ,('2012-01-02', 'c', 0, 4);

 SELECT * FROM crosstab(
     'SELECT timeof, entity, status, ct
      FROM   t4
      ORDER  BY 1,2,3'
     ,$$VALUES (1::text), (0::text)$$)
 AS ct ("Section" timestamp, "Attribute" character, "1" int, "0" int);
Run Code Online (Sandbox Code Playgroud)

返回:

 Section                   | Attribute | 1 …

sql postgresql pivot crosstab

11
推荐指数
2
解决办法
3万
查看次数

在MS Access中透视数据

我创建了一个查询,用于提取他们在一个月的时间内完成的学生ID和用餐项目.我想计算一个学生在这个月的每个项目(早餐,午餐,小吃)的数量.

看来,在数据透视表报表中访问句柄的数据太多,所以我希望有一个我可以运行的SQL查询.

这是我创建的当前查询:

SELECT April2013.SID, MenuItems.MealType AS Apr2013Meal  
FROM April2013 LEFT JOIN MenuItems ON MenuItems.Item=April2013.Item;  
Run Code Online (Sandbox Code Playgroud)

当前输出:

+-----+-----------+  
| SID |   Meal    |  
+-----+-----------+  
| 001 | Lunch     |  
| 002 | Lunch     |  
| 003 | Breakfast |  
| 004 | Snack     |  
| 005 | Lunch     |
| 006 | Lunch     |  
| 001 | Breakfast |  
| 003 | Snack     |  
| 004 | Breakfast |  
+-----+-----------+
Run Code Online (Sandbox Code Playgroud)

这是我希望它看起来的样子:

+-----+-----------+-------+---------+  
| SID | Breakfast | Lunch | Snack   | …
Run Code Online (Sandbox Code Playgroud)

sql ms-access pivot

11
推荐指数
1
解决办法
3万
查看次数

在sql server 2008中使用包含列和行总计的数据透视表

我有一个包含以下列的表

defect_id, developer_name, status, summary, root_cause, 
Secondary_RC, description, Comments, environment_name
Run Code Online (Sandbox Code Playgroud)

该列root_cause具有Enviro,Requi,Dev,TSc,TD,Unkn作为其值,列environment_name具有QA1,QA2,QA3

我需要以下面的格式准备一份报告

    Enviro Requi  Dev TSc  TD Unkn  Total
QA1    9    1     14   17   2   3   46
QA2    8    1     14   0    5   1   29
QA3    1    1      7   0    0   1   10
Total 18    3     35   17   7   5   85
Run Code Online (Sandbox Code Playgroud)

我准备报告直到

    Enviro Requi  Dev  TSc  TD Unkn 
QA1    9    1     14    17   2  3   
QA2    8    1     14    0    5  1   
QA3    1    1      7    0    0 …
Run Code Online (Sandbox Code Playgroud)

sql pivot sql-server-2008

11
推荐指数
1
解决办法
4万
查看次数

如何在熊猫中取消堆叠(或转动?)

我有一个如下所示的数据框:

import pandas as pd
datelisttemp = pd.date_range('1/1/2014', periods=3, freq='D')
s = list(datelisttemp)*3
s.sort()
df = pd.DataFrame({'BORDER':['GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY' ], 'HOUR1':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6],'HOUR2':[3 ,3 ,3, 5 ,5 ,5, 7, 7, 7], 'HOUR3':[8 ,8 ,8, 12 ,12 ,12, 99, 99, 99]}, index=s)
Run Code Online (Sandbox Code Playgroud)

这给了我:

Out[458]: df

             BORDER  HOUR1  HOUR2  HOUR3
2014-01-01  GERMANY      2      3      8
2014-01-01   FRANCE      2      3      8
2014-01-01    ITALY      2      3      8
2014-01-02  GERMANY      4      5     12
2014-01-02   FRANCE      4      5     12
2014-01-02    ITALY      4 …
Run Code Online (Sandbox Code Playgroud)

python stack pivot pandas

11
推荐指数
2
解决办法
2万
查看次数

如何使用日期作为列动态旋转

我有一个包含产品ID和名称的表格,另一个表格包含这些产品在特定日期的库存.比如Item16库存1-1-20148库存2-1-2014.我试图在存储过程中显示这些内容,使其看起来像一个日历,显示一个月中的所有日期以及单元格中可用的库存.展示这个的最佳方式是什么?

例如:

Name  | 1-1-2014 | 2-1-2014 | 3-1-2014 | 4-1-2014
Item1 |     6    |     8    |          |    6
Item2 |          |     2    |     1    |
Run Code Online (Sandbox Code Playgroud)

原始表 - 名称

 ID |   Name 
  1 |  Item1
  2 |  Item2
Run Code Online (Sandbox Code Playgroud)

原始表 - Stockdates

 ID | NameID  | Stock |    Date 
  1 |    1    |   8   |  2-1-2014    
  2 |    2    |   2   |  4-1-2014 
Run Code Online (Sandbox Code Playgroud)

sql sql-server pivot dynamic-pivot

11
推荐指数
1
解决办法
3万
查看次数

数据库透视 - 目的是什么?

为什么有人想将列转换为行(即旋转)?它解决了哪个问题?

我找到了一些链接,但没有得到满意的答案.

http://codeghar.wordpress.com/2007/11/03/pivot-tables/

http://msdn.microsoft.com/en-us/library/ms177410%28SQL.105%29.aspx

database pivot

10
推荐指数
2
解决办法
1万
查看次数

如何在SQL Server中水平旋转表

我有列的表格如下:

Sr.no  Subject  No of class attended    
-------------------------------------
1       English           3
2       Maths             4
3       SocialScience     5
Run Code Online (Sandbox Code Playgroud)

我希望这种格式的表格

English    Maths   SocialScience
---------------------------------
3            4          5
Run Code Online (Sandbox Code Playgroud)

我试过这个:

Select case when subject ='Maths' then COUNT(No_of_Candidates) else null  end as Maths
Run Code Online (Sandbox Code Playgroud)

但有了这个,我得到这样的数据:

 English    Maths   SocialScience
---------------------------------
   3            
               4
                         5
Run Code Online (Sandbox Code Playgroud)

请帮帮我怎么解决这个问题..

sql sql-server pivot sql-server-2008 sql-server-2008-r2

10
推荐指数
1
解决办法
1万
查看次数

如何将列值转换为列?

我已经浏览了Stackoverflow上的很多SQL Pivot示例,在联机丛书和谷歌中,我仍然无法弄清楚如何执行(我会称之为)简单的数据透视操作.

例1

样本数据:

Name     Class       Score
=======  ==========  ======
Nick     Chinese     80 
Nick     English     70 
Nick     Biology     85 
Nick     Maths       85
Kent     Chinese     80 
Kent     Maths       90 
Kent     English     70 
Kent     Biology     85 
Run Code Online (Sandbox Code Playgroud)

期望的输出1 - 按类进行透视,按名称聚合

Name     Chinese     English   Biology  Maths
=======  ==========  ========  =======  ======
Nick     80          70        85       85
Kent     80          70        85       90
Run Code Online (Sandbox Code Playgroud)

注意:

在我脑海中,我想象的语法是:

SELECT Score FROM Scores
GROUP BY Name
PIVOT BY Class
Run Code Online (Sandbox Code Playgroud)

期望的输出2 - 按班级分数,总分数

Name     Chinese     English   Biology  Maths
=======  ==========  ======== …
Run Code Online (Sandbox Code Playgroud)

sql-server pivot

10
推荐指数
1
解决办法
1万
查看次数

从表中选择值作为列标题

我有一个表'propertyvalues'如下:

ID  FileID  Property  Value
1 x Name 1.pdf
2 x Size 12567
3 x Type application/pdf
4 y Name 2.pdf
5 y Size 23576
6 y Type application/pdf
......
and so on

如何在上面的表上编写SQL查询以获取如下所示的结果

 
FileID  Name     Size      Type
x 1.pdf 12567 application/pdf
y 2.pdf 23576 application/pdf

sql t-sql sql-server pivot sql-server-2008

10
推荐指数
2
解决办法
2万
查看次数

带有子查询的MS SQL Server数据透视表

我确定这是一个简单的技术,虽然我到目前为止找不到答案!

我有

TIMESTAMP           | POINTNAME | VALUE
2012-10-10 16:00:00   AHU01       20
2012-10-10 16:00:00   AHU02       25
2012-10-10 16:00:15   AHU01       26
2012-10-10 16:00:15   AHU02       35
Run Code Online (Sandbox Code Playgroud)

等......(大约800个POINTNAMES)

有很多点名我不想在每个枢轴'FOR'的'IN'子句中列出(如下面给出的语法)定义,但是想使用子查询.

所以我想要的是将所有POINTNAME值作为具有A TIMESTAMP和VALUE列的列,因此我将获得一个TIMESTAMP值和每个POINTNAME的多个列,每个POINTNAME PER TIMESTAMP只有一个值,所以我不需要聚合什么,所以只要选择最大值?

就像是:

SELECT [TIMESTAMP] FROM ( SELECT * FROM POINT_TABLE)
PIVOT( Max[Value] FOR [POINTNAME] IN (SELECT DISTINCT [POINTNAME] FROM POINT_TABLE)
Run Code Online (Sandbox Code Playgroud)

会产生 -

   TIMESTAMP              AHU01          AHU02
 2012-10-10 16:00:00        20             25
 2012-10-10 16:15:00        26             35
Run Code Online (Sandbox Code Playgroud)

我意识到这可能不是这么简单,但希望你得到我想要实现的目标?

PIVOT语法:

SELECT <non-pivoted column>,
    [first pivoted column] AS <column name>,
    [second pivoted column] AS <column name>,
    ...
    [last …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server pivot subquery

10
推荐指数
1
解决办法
2万
查看次数