我有一个包含call_no
,status
和sub_staus
例如:记录是这样的。
call_no status sub_staus
123 2 null
123 79 null
123 null 119
231 5 null
231 null 78
我需要获取状态为 79 的call_no
,并且sub_status 119
答案 0 :(得分:0)
您可以使用聚合和having
:
select call_no
from t
group by call_no
having sum(case when status = 79 then 1 else 0 end) > 0 and
sum(case when sub_status = 119 then 1 else 0 end) > 0;
答案 1 :(得分:0)
SELECT CALL_NO
FROM TABLE
GROUP BY CALL_NO
HAVING SUM(
CASE
WHEN STATUS = 79
THEN 1
ELSE 0
END) > 0
AND SUM(
CASE
WHEN SUB_STATUS = 119
THEN 1
ELSE 0
END) > 0;
答案 2 :(得分:0)
我怀疑你想要最大值 - 但这是猜测。如果您想要已经状态79和子状态119的呼叫,则使用SUM(案例....)将适用,但使用最大值可能会给您当前状态79和子状态119。
select call_no
from t
group by call_no
having max(status) = 79
and max(sub_status) = 119;