TSQL条件联接&;参考表维度
我试图找出一个销售机会在5个不同阶段中的每一个阶段持续多长时间。问题在于salesforce中的数据扁平化。目前的结构如下: 表:历史TSQL条件联接&;参考表维度,tsql,Tsql,我试图找出一个销售机会在5个不同阶段中的每一个阶段持续多长时间。问题在于salesforce中的数据扁平化。目前的结构如下: 表:历史 TaskID | OppID | STAGE | IQ | DISCO | TECH | COMMERCIAL | CLOSE 1 Op1 IQ 5 0 0 0 0 2 Op1 DISCO 0 10 0 0
TaskID | OppID | STAGE | IQ | DISCO | TECH | COMMERCIAL | CLOSE
1 Op1 IQ 5 0 0 0 0
2 Op1 DISCO 0 10 0 0 0
3 Op1 TECH 0 0 15 0 0
4 Op1 COMM 0 0 0 5 0
5 Op2 IQ 2 0 0 0 0
6 Op2 CLOSE 0 0 0 0 3
7 Op3 IQ 3 0 0 0 0
上表有~417k行。仅创建了49k个个人Opportunity,因此49k是我的表的目标行数
我试过下面的连接。我觉得好像我在1码线上,只需要推一下
下面是一张有39M行的表格
SELECT a.OpportunityID, b.IQ, c.Disco, d.Tech, e.Commercial, f.Close
FROM OppHistory a
JOIN OppHistory b ON a.OppID = b.OppID
JOIN OppHistory c ON b.OppID = c.OppID
JOIN OppHistory d ON c.OppID = d.OppID
JOIN OppHistory e ON d.OppID = e.OppID
JOIN OppHistory f ON e.OppID = f.OppID
下表给出了一个约50k行的表格,但是,只包含了一些精选的机会,每个OppID都会重复500次左右
SELECT DISTINCT a.OpportunityID, b.IQ, c.Disco, d.Tech, e.Commercial,
f.Close
FROM OppHistory a
JOIN OppHistory b ON a.OppID = b.OppID
JOIN OppHistory c ON b.OppID = c.OppID
JOIN OppHistory d ON c.OppID = d.OppID
JOIN OppHistory e ON d.OppID = e.OppID
JOIN OppHistory f ON e.OppID = f.OppID
下表中给出了0个结果
SELECT b.OppID, Duration AS IQDuration, Duration AS DiscoDuration,
Duration AS TEDuration, Duration AS CommercialsDuration, Duration AS
ClosedDuration
FROM OppHistory b,(
SELECT q.IQ AS Duration FROM OppHistory q
UNION
SELECT d.Disco AS Duration FROM OppHistory d
UNION
SELECT t.Tech AS Duration FROM OppHistory t
UNION
SELECT c.Comm AS Duration FROM OppHistory c
UNION
SELECT l.Closed AS Duration FROM OppHistory l
)a
我需要的是在单独的列中列出每个阶段的持续时间,以获得不同的机会:
OppID |IQ | Disco | TechEval | Commercial | Close
Op1 5 10 15 5 0
Op2 2 0 0 0 3
Op3 3 0 0 0 0
我想你在追求这个:
SELECT OppID, SUM(IQ) AS IQ, SUM(Disco) AS Disco, SUM(Tech) AS Tech, SUM(Commercial) AS Commercial, SUM(Close) AS Close
FROM OppHistory
GROUP BY OppID
我想你在追求这个:
SELECT OppID, SUM(IQ) AS IQ, SUM(Disco) AS Disco, SUM(Tech) AS Tech, SUM(Commercial) AS Commercial, SUM(Close) AS Close
FROM OppHistory
GROUP BY OppID
这不仅仅是一个简单的分组查询吗?这不仅仅是一个简单的分组查询吗?谢谢Barney-这很有效。看起来我想得太多了汉克斯·巴尼-这很有效。看来我想得太多了