我有一个以下列方式组织的数据集:
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) 我在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();但没有成功.
我有这样一张桌子:
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一行.
我怎样才能按照我想要的方式去做? …
所以我有以下日期
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)
我感到困惑的地方是我想保留两个列并只旋转其他两个字段.任何人都知道我会怎么做.
非常感谢您的帮助/时间.我从来没有发布其中的一个,非常感谢您的回复!
我正在使用在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)
如何进行旋转以获得上述格式的结果?提前致谢.
我有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) 我正在尝试为新表准备数据,该表与现有表中的数据相同但是非规范化.我有一个简单的场景,但我的想法是以最有效的方式返回结果
它基于以下简化方案:
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(可能使用触发器)并在查询中连接这些表
由于这个或那个原因,这些解决方案中的每一个都有一个主要的缺点,我确信一个词可以让我想起一个解决这个问题的概念
在我的例子中,我有老师,学生和课程.我想概述哪个课程由谁在本课程的哪些房间和所有学生中进行教学.我有基本的设置runnig(带有一些手动编码的语句).但直到现在我没有运气准备正确的STUFF声明:
@colsStudents以便我可以将名称放在列标题中,并删除混乱ID(添加100)的需要,以避免在rooms.id和students.id之间发生冲突@colsRooms这样我就不必为房间名称加油EXEC sp_executesql @sql;您可以找到所有sql语句来创建此架构和最后的数据.

我想转动列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) 我想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) 想象一下按日期和名称键入的表主键.
|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中进行透视,但如果提交的答案使用了这个,我会对一些性能诊断感兴趣,以便与简单的解决方案进行比较.
pivot ×10
sql ×7
oracle ×2
sql-server ×2
c# ×1
dynamic-sql ×1
oracle11g ×1
python ×1
rows ×1
sqlalchemy ×1
storyboard ×1
t-sql ×1