[英]Complex SQL query to combine rows
我有 2 张桌子,首先是
Thread { code, itr_global,campaign, contact, start_time,duration}
segment {code,thread,start_time,duration,state}
还有多个其他连接,但这两个是主要连接。 2 表被实现为 thread.code=segment.thread。
在段表中,单线程会有多行。 我需要获得价值
campaign start_time 持续时间 waititme talk_time hold_time wrap_time
wait_time 我可以得到 segment.state=7 & talke_time=segment.state=6 & wrap time as segment.state=8 我不能在一行中得到所有这些值,因为它会给我 3 个不同的行记录。 如何按照上述格式获取单行中的所有值。
您需要一些条件聚合SUM(CASE...)
来获得您想要的结果。
所有这些都是基于我对你的表的结构和含义的猜测,你从你的问题中省略了。
SELECT thread.code, thread.campaign,
SUM(segment.duration) duration,
SUM(CASE WHEN segment.state = 7 THEN segment.duration END) waittime,
SUM(CASE WHEN segment.state = 6 THEN segment.duration END) talk_time,
SUM(CASE WHEN segment.state = 8 THEN segment.duration END) wrap_time,
42 hold_time, -- you didn't say how to get hold_time
SUM(CASE WHEN segment.state = 8 THEN segment.duration END) wrap_time
FROM Thread
LEFT JOIN segment ON Thread.code = segment.thread
GROUP BY thread.code, thread.campaign
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.