GROUP BY id 具有值 'X' 或值 'Y'
GROUP BY id HAVING value like 'X' or value like 'Y'
Table bo_sip_cti_event_day
有列:uuid, hangup_clause
但我在许多记录中有许多相同的 uuid
与其他 hangup_clause
例如:a, ORIGINATOR_CANCEL
, a, NO_ANSWER
, a, ALLOTTED_TIMEOUT
.
我必须得到所有 uuid
,其中 hangup_cause 是 ORIGINATOR_CANCEL
,NO_ANSWER
是相同的 uuid
。
到目前为止我试过:
select uuid from bo_sip_cti_event_day group by uuid having hangup_cause like 'ORIGINATOR_CANCEL' and hangup_cause like 'NO_ANSWER'
但随后错误表明 hangup_cause
必须按子句分组或在聚合函数中。
在 HAVING
子句中处理聚合。您的情况下的条件聚合:
select uuid
from bo_sip_cti_event_day
group by uuid
having count(case when hangup_cause = 'ORIGINATOR_CANCEL' then 1 end) > 0
and count(case when hangup_cause = 'NO_ANSWER' then 1 end) > 0;
这为您提供了两个挂断子句都存在的所有 UUID。
Table bo_sip_cti_event_day
有列:uuid, hangup_clause
但我在许多记录中有许多相同的 uuid
与其他 hangup_clause
例如:a, ORIGINATOR_CANCEL
, a, NO_ANSWER
, a, ALLOTTED_TIMEOUT
.
我必须得到所有 uuid
,其中 hangup_cause 是 ORIGINATOR_CANCEL
,NO_ANSWER
是相同的 uuid
。
到目前为止我试过:
select uuid from bo_sip_cti_event_day group by uuid having hangup_cause like 'ORIGINATOR_CANCEL' and hangup_cause like 'NO_ANSWER'
但随后错误表明 hangup_cause
必须按子句分组或在聚合函数中。
在 HAVING
子句中处理聚合。您的情况下的条件聚合:
select uuid
from bo_sip_cti_event_day
group by uuid
having count(case when hangup_cause = 'ORIGINATOR_CANCEL' then 1 end) > 0
and count(case when hangup_cause = 'NO_ANSWER' then 1 end) > 0;
这为您提供了两个挂断子句都存在的所有 UUID。