Nếu bạn muốn sự khác biệt với created_time
không có thành phần thời gian, thì bạn muốn logic như thế này:
select msg_guid,
(max(case when payload_type = 1 then created_time end) -
(case when max(case when payload_type = 2 then created_time end) <>
trunc(max(case when payload_type = 2 then created_time end))
then max(case when payload_type = 2 then created_time end)
when max(case when payload_type = 3 then created_time end) <>
trunc(max(case when payload_type = 3 then created_time end))
then max(case when payload_type = 3 then created_time end)
end)
) as diff
from table t
group by msg_guid;
Điều này trả về kết quả dưới dạng các phần nhỏ của một ngày.