按Oracle SQL中的选定变量分组
很抱歉标题不明确,但我真的不确定我要找的是什么 我有几个表格,不一定适合报告,你猜到了,我想从中报告。我也是SQL新手,这会让事情变得复杂一些按Oracle SQL中的选定变量分组,sql,oracle,select,group-by,Sql,Oracle,Select,Group By,很抱歉标题不明确,但我真的不确定我要找的是什么 我有几个表格,不一定适合报告,你猜到了,我想从中报告。我也是SQL新手,这会让事情变得复杂一些 Table1: ID Created EventName 1 1/1/14 Event1 2 1/1/14 Event1 3 2/1/14 Event1 4 2/1/14 Event2 5
Table1:
ID Created EventName
1 1/1/14 Event1
2 1/1/14 Event1
3 2/1/14 Event1
4 2/1/14 Event2
5 3/1/14 Event3
Table2:
EventID EventType Value
1 Var1 123
1 Var2 XYZ
1 Var3 ABC321
2 Var1 987
2 Var4 Dumbledore
2 Var2 WXY
2 Var6 Hamburger
3 Var1 456
我发现如果我使用下面的SQL
SELECT T1.EventName,
Count
((Select T2.Value
From Table2.T2
Where T1.ID = T2.EventID
And T2.EventType = 'Var2'
)) as Var2Count
From Table1 T1
Group By T1.EventName
我应该得到如下输出:
EventName Var2Count
Event1 1
Event2 1
然而,我渴望获得以下输出:
EventName Var2Name
Event1 XYZ
Event2 WXY
我知道这是关于我如何构造Group By的,更重要的是在最后一个From语句之后定义Var2Name变量,但是我有点不知道该怎么做
好吧,我认为这更接近我想要的,但仍然存在一些问题:
谢谢,我确实需要加入。。。但我认为我的下一步功能将成为一个问题 我现在有了这个:
select Table1.EventName, Table2.Value,
count
((select Table2.Value
from Table2
where Table1.ID = Table2.EventID
and Table2.EventType in ('Var2')
)) as LineCount,
sum
((select Table2.Value
from Table2
where Table1.ID = Table2.EventID
and Table2.EventType = 'Var7'
and Table2.Value not like '%undefined%'
)) as TotalCost
from Table1
inner join Table2
on Table1.ID = Table2.EventID
where Table2.EventType in ('Var2','Var7')
Group By Table1.EventName, Table2.Value;
我只是不知道如何将每个分组表的值添加到新列中
输出如下所示:
EventName Var1Name Var2Name Var3Name Var4Name (etc)
Event1 123 XYZ ABC321 (null)
Event2 678 LKT (null) 765AWW
Event3 (null) (null) DERP STUFF
有什么想法吗?我想你想要的是加入,而不是聚合:
select t1.EventName, t2.Value
from table2 t2 join
table1 t1
on t2.EventId = t1.id
where t2.EventType = 'Var2';
谢谢,我确实需要加入。。。但我认为我的下一步功能将成为一个问题!