我有一種情況,我有 1,2,3,4 列,其中 1,2,3 可以是跨行的重復值,4 可以是唯一的。我正在嘗試撰寫一個查詢,它將給我 1、2、3 的重復和 4 的差異。所以它想,
1 2 3 4
a b c 5
a b c 7
我只想回傳那些分組的值,這樣我就可以看到我有多少重復 1-3 但有不同的 4。我試過了,
select 1,2,3,4
from tbl
where 1 IN (select 1 from tbl group by 1 having count(*) > 1)
以上隔離了所有變體 - 但我得到了 4 可能為空的額外值。如果我使用“其中 4 不為空”,我仍然保留非空變體,即count(*) > 1
我也試過
select 1, 2, 3, 4
from
(
select 1,2,3,4
from tbl
where 1 IN (select 1 from tbl group by 1 having count(*) > 1))
group by 1,2,3
上面根本行不通,因為我還需要第 4 組,然后我得到相同的結果。
我知道這是對我還不明白該怎么做的事情的簡單調整。有人可以在這里幫忙嗎?謝謝!
uj5u.com熱心網友回復:
where 4 is not null
是解決方案。您只需要在兩個地方執行此操作:在子查詢中,將這些案例排除在計數中,在主查詢中,洗掉這些行:
select 1,2,3,4
from tbl
where 1 IN (select 1 from tbl WHERE 4 IS NOT NULL group by 1 having count(*) > 1)
AND 4 IS NOT NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/528817.html
上一篇:Open Cascade 7.7.0 新功能:BRepLib_PointCloudShape
下一篇:遍歷表以查找子字串