Re: [SQL ] 取得一段時間長度並去除重複
https://imgur.com/a/pAFmK4s
-- 測資
;with tb1 as (
select *
from( values
('A','08:00:00','08:20:00'),
('B','08:15:00','08:23:00'),
('C','08:21:00','08:26:00'),
('D','08:30:00','08:32:00'),
('E','08:33:00','08:52:00'),
('F','08:39:00','08:42:00'),
('G','08:45:00','08:49:00')
)t(id,st,et)
),
-- 取出斷點資料
tb2 as (
select *
from tb1 t1
where not exists (
select * from tb1 where st <= t1.et and et > t1.et
)
),
-- 取得大於等於自己的斷點
tb3 as (
select t1.st,t2.et,cnt = count(*) over (partition by t1.id)
from tb1 t1 inner join tb2 t2
on t1.et <= t2.et
)
-- 結果
select st = min(st),et=min(et)
from tb3
group by cnt
order by st
※ 引述《howard7821 (howard7821)》之銘言:
: 標題可能不是很清楚我想表達的
: 目前有個需求是想要計算業務的總通話時長
: 但一個業務同時間可能會與很多客戶對話
: 舉例來說
: 客戶 開始對話時間 結束對話時間
: A 08:00:00 08:20:00
: B 08:15:00 08:23:00
: C 08:21:00 08:26:00
: D 08:30:00 08:32:00
: E 08:33:00 08:52:00
: F 08:39:00 08:42:00
: G 08:45:00 08:49:00
: 以上就是這業務與客戶的對話時間表
: 然後想整理成以下資訊
: 1 08:00:00 08:26:00
: 2 08:30:00 08:32:00
: 3 08:33:00 08:52:00
: 也就是對話時間有連貫就合成一筆資料
: 求大神幫小弟解答一下 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.106.46 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1576222406.A.CDB.html
推
12/13 18:16,
5年前
, 1F
12/13 18:16, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章