标签: pivot

我如何使用SQL Pivot?

我有一个以下列方式组织的数据集:

Timestamp|A0001|A0002|A0003|A0004|B0001|B0002|B0003|B0004 ...
---------+-----+-----+-----+-----+-----+-----+-----+-----
2008-1-1 |  1  |  2  | 10  |   6 |  20 |  35 | 300 |  8
2008-1-2 |  5  |  2  |  9  |   3 |  50 |  38 | 290 |  2    
2008-1-4 |  7  |  7  | 11  |   0 |  30 |  87 | 350 |  0
2008-1-5 |  1  |  9  |  1  |   0 |  25 | 100 |  10 |  0
...
Run Code Online (Sandbox Code Playgroud)

其中A0001是项目#1的值A,B0001是项目#1的值B. 表中可以有超过60个不同的项,每个项都有一个A值列和一个B值列,表示表中总共超过120列.

我想要的是一个3列结果(项目索引,A值,B值),它将每个项目的A和B值相加:

Index | A Value …
Run Code Online (Sandbox Code Playgroud)

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

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

枢轴应用程序中的动画控件(WP7)

我在Xaml中创建了一个支点.枢轴有4个项目.

在每个数据透视图上都有一个通过以下代码创建的故事板动画:

    {  
        var myStoryBoard = new Storyboard();  
        myStoryBoard.RepeatBehavior = RepeatBehavior.Forever;
        var animation = new ObjectAnimationUsingKeyFrames(); 

        Storyboard.SetTarget(animation, myAnim1);  
        Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));  

        myStoryBoard.Children.Add(animation);  

        // try to catch my images autmatically 

        for (int i = 1; i <= 12; i++)  
        {  
           var keyframe = new DiscreteObjectKeyFrame  
           {  
              KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(750 * i)),
              Value = String.Format("/Images/img_{0:D2}.jpg", i)  
           };  

            animation.KeyFrames.Add(keyframe); 
        }  
        Resources.Add("myAnimation", storyboard);         } 
Run Code Online (Sandbox Code Playgroud)

如果选择了枢轴项目,而所有其他故事板都没有播放,如何设置故事板的开头才能启动?

我尝试设置它Pivot_SelectionChanged();但没有成功.

c# pivot storyboard windows-phone-7 windows-phone

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

Oracle SQL - 从多行中获取值

我有这样一张桌子:

TABLE: FACTS
ID       KEY         VALUE
1        name        Jeremy
1        height      5'11
1        awesomeness 10
2        name        Mark
2        awesomeness 4
3        height      4'6
Run Code Online (Sandbox Code Playgroud)

因此,(ID,KEY)元组可以被视为主键.

我试图返回这样的行:

ID     NAME     HEIGHT    AWESOMENESS
1      Jeremy   5'11      10
2      Mark     (null)    4
3      (null)   4'6       (null)
Run Code Online (Sandbox Code Playgroud)

除了通过对每列进行子选择之外,如何获取键值,如果它们在那里,并将它们收集到我的单行中?我到目前为止尝试的是:

SELECT 
  id,
  CASE WHEN facts.key = 'name' THEN value END name,
  CASE WHEN facts.key = 'height' THEN value END height,
  CASE when facts.key = 'awesomeness' THEN value END awesomeness
FROM
  facts
WHERE
  facts.id in (1,2,3)
Run Code Online (Sandbox Code Playgroud)

但是由于显而易见的原因,每个匹配的键返回一行,而不是每个id一行.

我怎样才能按照我想要的方式去做? …

sql oracle pivot dynamic-sql

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

SQL,多行到一列

所以我有以下日期

ID       NAME       MONTH              COUNT

1        David      December2012       500

2        Rob        December2012       320

1        David      January2013        400

2        Rob        January2013        280
Run Code Online (Sandbox Code Playgroud)

我想做这个.......

ID       Name       December2012       January2013

1        David      500                400

2        Rob        320                280
Run Code Online (Sandbox Code Playgroud)

我感到困惑的地方是我想保留两个列并只旋转其他两个字段.任何人都知道我会怎么做.

非常感谢您的帮助/时间.我从来没有发布其中的一个,非常感谢您的回复!

sql pivot rows multiple-columns

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

使用sql pivot

我正在使用在Windows Server 2008 R2上运行的oracle 11gR2

我有一张这样的桌子

   year    code    value
   ----    ----    -----
   1991      1      v1
   1991      2      v2
   1991      3      v3

   1992      1     v4
   1992      2     v5
   1992      3     v6

   ...
   2050  
Run Code Online (Sandbox Code Playgroud)

代码列可以是1到10.

我想看到最终输出为(列值为1到10)

 year    1   2   3  4 ....    10
 ----    --  --  -- --        --
 1991   v1   v2  v3 null.......null
 1992   v4   v5  v6. ...etc
Run Code Online (Sandbox Code Playgroud)

如何进行旋转以获得上述格式的结果?提前致谢.

sql pivot oracle11g

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

SQL多行作为列,不使用PL/SQL

我有3张桌子

  • questions (q_id, q_text)
  • answers (a_id, a_text, q_id)
  • correct_answers (q_id, a_id)

对于每个问题,答案表可以具有最小值1和最多4个值

我需要一个纯SQL查询(连接或子查询)以获得下表作为结果

result (q_id, q_text, option1, option2, option3, option4, correct)
Run Code Online (Sandbox Code Playgroud)

option1,option2,option3,option4都属于答案表,可以是null,correct属于correct_answers

问题:

q_id  q_text
2     Capital of Pakistan is
3     Karachi is in africa
5     New dehli is _____ of india
Run Code Online (Sandbox Code Playgroud)

回答:

a_id  a_text     q_id
1     Lahore     2
2     Islamabad  2
3     Karachi    2
4     Quetta     2
5     True       3
6     False      3
7     Capital    5 …
Run Code Online (Sandbox Code Playgroud)

sql pivot

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

Oracle SQL查询非规范化

我正在尝试为新表准备数据,该表与现有表中的数据相同但是非规范化.我有一个简单的场景,但我的想法是以最有效的方式返回结果

它基于以下简化方案:

Table X   | Table y
id        | id    Identifier  Value
123       | 123   1           A
          | 123   2           B
Run Code Online (Sandbox Code Playgroud)

与表XI中的其他字段一起需要我的查询返回:

123 A B
Run Code Online (Sandbox Code Playgroud)

我考虑过:

解决方案一

select 
id,
(select Value...),
(select Value...)...
Run Code Online (Sandbox Code Playgroud)

解决方案二:

select id,
y1.Value,
y2.Value
from x, y y1, y y2...
Run Code Online (Sandbox Code Playgroud)

解决方案三:使用PL/SQL并迭代游标

解决方案四:将y提取到两个表identifyyer1和identifier2(可能使用触发器)并在查询中连接这些表

由于这个或那个原因,这些解决方案中的每一个都有一个主要的缺点,我确信一个词可以让我想起一个解决这个问题的概念

sql oracle pivot denormalization

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

透视3个表中的2列并创建pivot-column-names以避免冲突 - SQL-Server 2008R2

介绍和问题

在我的例子中,我有老师,学生和课程.我想概述哪个课程由谁在本课程的哪些房间和所有学生中进行教学.我有基本的设置runnig(带有一些手动编码的语句).但直到现在我没有运气准备正确的STUFF声明:

  • 准备,@colsStudents以便我可以将名称放在列标题中,并删除混乱ID(添加100)的需要,以避免在rooms.id和students.id之间发生冲突
  • 做好准备,@colsRooms这样我就不必为房间名称加油
  • 通过使用我把所有人放在一起 EXEC sp_executesql @sql;

您可以找到所有sql语句来创建此架构和最后的数据.

表Diagramm

通缉成绩概述课程,

我想转动列RoomName,StudentName并使用列值作为新列名称.所有用于创建表和数据的SQL语句都在最后.

Id | Course | Teacher | A3 | E7 | Penny | Cooper | Koothrap. | Amy
---+--------+---------+----+----+-------+--------+-----------+-----+
1  | C# 1   | Marc G. |    | 1  |  1    |        |           |
2  | C# 2   | Sam S.  |    | 1  |  1    |        |      1    |
3  | C# 3   | John S. | 1  |    |       | …
Run Code Online (Sandbox Code Playgroud)

sql pivot sql-server-2008

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

多部分标识符:在SQL存储过程中使用PIVOT时出错

我想PIVOT在存储过程中使用来获取行.我所做的是:

DECLARE @cols NVARCHAR(MAX)
DECLARE @stmt NVARCHAR(MAX)

SET @cols = ''

SELECT @cols = @cols + Table3.vAnalyteName+ ','
                                        FROM Table3,Table5,Table6
                                        WHERE Table3.nBAChildProjectsNo = Table5.nBaSequenceScheduleHdrNo
                                              AND Table3.cStatusIndi <> 'D'

SET @cols = substring(@cols, 1, len(RTRIM(@cols)) -1 ) 

--SET @cols = stuff(@cols, 1, 2, '')

SET @stmt = 'SELECT
            Table1.nBaSequenceScheduleHdrNo,
            Table1.vSampleId,
            Table1.vSampleName,
            Table1.iSeqNo,
            Table1.vSampleType,
            Table2.vInjectionVolume,
            Table3.vAnalyteName,
            Table4.nConcentration,
            Table1.cStatusIndi

        FROM Table1

                INNER JOIN Table5
                      ON(Table5.nBaSequenceScheduleHdrNo =  Table1.nBaSequenceScheduleHdrNo
                         AND Table5.cStatusIndi <> ''D'')

                INNER JOIN Table2
                      ON(Table2.nBAchildProjectsNo = Table5.nBAchildProjectsNo
                         AND Table2.cStatusIndi <> ''D'') …
Run Code Online (Sandbox Code Playgroud)

sql-server pivot

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

转向SQLAlchemy

想象一下按日期和名称键入的表主键.

|Date|Name|Value|
|D1  |   A|    2|
|D1  |   B|    3|
|D2  |   A|    3|
|D2  |   C|    1|
Run Code Online (Sandbox Code Playgroud)

如何编写一个SQLAlchemy查询,产生(日期,值)对,其中值是该日期所有名称的所有值?值元组的长度将是,len(distinct(Name))并且缺失值将包含一些标记值(例如,无).

i.e.
[
(D1, 2, 3, None),
(D2, 3, None, 1),
...
]
Run Code Online (Sandbox Code Playgroud)

我不是要在这里要求一个完整的答案,以便让我批准.如果您可以告诉我在文档中搜索/阅读哪些概念(或者真的,请指出任何有用或相关的内容),我会(尝试)自己弄清楚并发布更新.

[请不要大熊猫解决方案]

简单的答案是以长格式加载查询并使用numpy.searchsorted在numpy中进行透视,但如果提交的答案使用了这个,我会对一些性能诊断感兴趣,以便与简单的解决方案进行比较.

python sql pivot sqlalchemy

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