标签: pivot

将表中的多行合并为1个结果集行

我有一个存储这样的记录的表:

name     | stat  | value
--------------------------
object1  | stat1 | val1
object1  | stat2 | val2
object1  | stat3 | val3
object1  | stat4 | val4
Run Code Online (Sandbox Code Playgroud)

但我想查询数据,以便返回这样的行

name    | stat1| stat2| stat3| stat4
-------------------------------------
object1 | val1 | val2 | val3 | val4
Run Code Online (Sandbox Code Playgroud)

我会使用案例陈述,或者如何实现这样的事情?我的例子只显示了4个可能的统计数据,但希望我可以创建足够动态的东西,如果我将来添加新的统计数据,则不必重写查询.如果那是不可能的,我的选择是什么?

mysql sql pivot

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

MS SQL上的字符串连接用于一组行

可以说我有两张桌子:

1与用户和另一个用户记录哪些用户使用了什么代码.

Users
-----
Id, Name
1, 'John'
2, 'Doe'

Codes
------
Id, UserId, code
1, 1, 145
2, 1, 187
3, 2, 251

现在我想拉出一个导致他跟随的查询

Name, UsedCodes
'John', '145,187'
'Doe', '251'

如何使用查询或存储过程完成此操作?

t-sql sql-server pivot

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

这个SQL查询可能吗?

假设我有这些数据:

Employee  Task   IsCurrent
--------  ----   ---------
Jeff      1      Yes
Jeff      2      No
Jane      1      No
Jane      2      Yes
Jane      3      No
Jane      4      No
Jake      1      Yes
Run Code Online (Sandbox Code Playgroud)

员工有一些任务,其中一个是最新的.任务编号表示一个排序 - 他们按顺序执行任务,当他们完成最后一个任务时循环回到开头.我想查询以查看接下来的三个任务.我想要这个结果集:

Employee    CurrentTask  NextTask  NextTask2
--------    -----------  --------  ---------
Jeff        1            2         1
Jane        2            3         4
Jake        1            1         1
Run Code Online (Sandbox Code Playgroud)

这可能吗?我正在使用SQL 2005

更新:对不起,我没有说清楚任务编号不一定是后续的 - 即Mike可能实际上有任务10,23和223.所以我不能只是加入寻找下一个顺序任务编号.

sql t-sql sql-server pivot sql-server-2005

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

SQL Server行值为列名Pivot Table?

我在SQL Server 2008中有以下视图.

DEPT | EMP_ID | EMP_NAME | P_DATE  | HOURS_WORKED
Run Code Online (Sandbox Code Playgroud)

我希望视图是这样的:

DEPT | EMP_ID | EMP_NAME | 2012-09-28 | 2012-09-29 | 2012-09-30 | 2012-10-01 ...
Run Code Online (Sandbox Code Playgroud)

上面的日期列标题是P_DATE,其中是该员工在该特定日期的"Hours_Worked"值.

喜欢

2012-09-28

09:00:00

10:00:00
Run Code Online (Sandbox Code Playgroud)

我不确定我是否可以使用Pivot实现它.

请转到此链接以获得清晰的理解:SQL Server查看快照

sql-server pivot sql-server-2008

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

SQL Server查询多对多关系 - 如何查询?

这是对我之前问题的更新:多对多的关系

以前的解决方案工作正常,但现在我想要tgo一点点改善结果.我希望将所有波长值放在一行中.

因此,而不是以下结果:

DateTimeID  Wavelength  SensorID
11435   1581,665    334
11435   1515,166    334
11435   1518,286    335
Run Code Online (Sandbox Code Playgroud)

我想要有类似的东西:

DateTimeID  Wavelength1 Wavelength2  SensorID
11435   1581,665    1515,166     334
11435   1518,286                 335
Run Code Online (Sandbox Code Playgroud)

sql pivot many-to-many sql-server-2008

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

透视更改日期

我有一个结果集的脚本,如下所示:

-- #Test (temptable)
Branch_Name   C_Date     Percentage
Branch 1      20140107   90
Branch 1      20140108   82
Branch 2      20140107   85
Branch 2      20140108   86
Run Code Online (Sandbox Code Playgroud)

我想转移这些数据,但是C_Date会被填充以获得7天的回复:

WHERE     (1 = 1) AND
       (tTable.C_Date > CONVERT(VARCHAR(10),GETDATE() -7, 112)) AND
       (tEnter.C_Date < CONVERT(VARCHAR(10),GETDATE() -1, 112)).
Run Code Online (Sandbox Code Playgroud)

我试过了

Select * from #Test
pivot (avg (Percentage) for C_date in ([20140107],[20140108])) as PivotTable
Run Code Online (Sandbox Code Playgroud)

它给了我想要的数据(见下文),

Branch_Name   20140107   20140108
Branch 1      90         82
Branch 2      85         86
Run Code Online (Sandbox Code Playgroud)

但是如何让枢轴看到由GETDATE?填充的日期?我已经尝试将GETDATE命令放在每个[]中,但这显然不起作用.**注意,我的示例显示了2天,但我的查询是7天,不包括它运行的那天.

任何帮助表示感谢 - 谢谢!

pivot date sql-server-2008

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

sql中的PIVOT如何知道列不同?

就拿这个例子: http://blogs.msdn.com/b/spike/archive/2009/03/03/pivot-tables-in-sql-server-a-simple-sample.aspx

  • 如何查询查询每个供应商的平均值?该查询不包含对VendorId列的任何引用,因此我无法知道如何收集每个供应商的IncomeAmounts.
  • 它如何选择执行PIVOT函数的行组?

sql pivot pivot-table

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

如何在大熊猫中结合枢轴和累计和

我有一个简单的数据框:

   type  | code | date    |value

0  apple | ap1  |08/12/14 |2
1  apple | ap1  |09/12/14 |12
2  apple | ap1  |10/12/14 |4
3  banana| b1   |08/12/14 |5
4  banana| b1   |09/12/14 |67
5  banana| b1   |10/12/14 |77
6  orange| o1   |08/12/14 |21
7  orange| o1   |09/12/14 |1
8  orange| o1   |10/12/14 |16
Run Code Online (Sandbox Code Playgroud)

我可以使用以下功能轻松地将日期作为列进行透视:

pivot = pd.pivot_table(data,values=('value'),rows=['code','type'],cols='date',aggfunc=np.sum)
Run Code Online (Sandbox Code Playgroud)

但是我找不到一种方法来使用累积和来代替np.sum,我想以以下格式显示数据吗?这可能吗?

type    08/12/14    09/12/14    10/12/14
apple   2           12          4
banana  7           79          81
orange  28          80          97
Run Code Online (Sandbox Code Playgroud)

python pivot pandas

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

SQL转换数据

我的结果来自以下格式的查询

ID CODE
----------
 1   abc
 1   xyz
 1   def
 1   pqr
 1   jkl
 1   tuv
Run Code Online (Sandbox Code Playgroud)

我希望结果采用以下格式

ID CODE1 CODE2 CODE3 CODE4 CODE5 CODE6
---------------------------------------
1  abc   xyz   def   pqr   jkl   tuv
Run Code Online (Sandbox Code Playgroud)

我知道这可以使用静态PIVOT查询来实现,但我面临的问题是该CODE列可能具有未知值,我希望我的列名称是固定的CODE1,CODE2依此类推CODE6.

有人可以帮我解决这个问题吗?

欢迎任何建议.

谢谢.

sql sql-server pivot

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

如何在Snowflake中利用动态值

我想基于可以包含“动态”值(并非总是事先知道)的字段来透视表。

我可以通过对值进行硬编码来使其工作(这是不希望的):

SELECT *
FROM my_table
  pivot(SUM(amount) FOR type_id IN (1,2,3,4,5,20,50,83,141,...);
Run Code Online (Sandbox Code Playgroud)

但是我无法使用查询来动态提供值:

SELECT *
FROM my_table
  pivot(SUM(amount) FOR type_id IN (SELECT id FROM types);
---
090150 (22000): Single-row subquery returns more than one row. 

SELECT *
FROM my_table
  pivot(SUM(amount) FOR type_id IN (SELECT ARRAY_AGG(id) FROM types);
---
001038 (22023): SQL compilation error:                                          
Can not convert parameter 'my_table.type_id' of type [NUMBER(38,0)] into expected type [ARRAY]
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

pivot dynamic snowflake-cloud-data-platform

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