的我有status
列call_no
,一臺過濾表,並sub_staus
如何編寫一個查詢根據一系列值
對於前:記錄是這樣的。
call_no status sub_staus
123 2 null
123 79 null
123 null 119
231 5 null
231 null 78
我需要獲取一個call_no
狀態爲和sub_status是
的我有status
列call_no
,一臺過濾表,並sub_staus
如何編寫一個查詢根據一系列值
對於前:記錄是這樣的。
call_no status sub_staus
123 2 null
123 79 null
123 null 119
231 5 null
231 null 78
我需要獲取一個call_no
狀態爲和sub_status是
爲此,您可以通過聚集和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;
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;
爲何提供已提供的解決方案(忽略格式差異)? –
我懷疑你想要最大的價值 - 但這是一個猜測。如果你想要有狀態79和子狀態119的呼叫,則使用SUM(case ....)將適用,但使用最大值可能會給你打電話當前爲在狀態79和子狀態119。
select call_no
from t
group by call_no
having max(status) = 79
and max(sub_status) = 119;
歡迎來到Stack Overflow。不建議您在不顯示您的努力和研究的情況下提出解決方案的問題,包括您嘗試過什麼,嘗試達到期望輸出時遇到了什麼問題。如果您在其他地方沒有找到解決此問題的方法,請發佈格式良好的問題以獲得快速而乾淨的答案,並可能對您的問題進行提問 – simsim