[英]By group, check if for each unique value, there is at least one row where the value of the field equals another field's value
我正在尋找一種方法(類似於該問題 ,為准備該問題而提出,以便使用我更熟悉的編程語言來表達該問題)是否針對每個組以及每個變量的值進行檢查,觀察到第一個變量的值等於第二個變量的值。
我對SQL非常陌生,僅通過GUI使用MS Access。 我不知道如何制定問題以獲得特定於SQL的結果。
我嘗試了一些聚合查詢,鏈接多個查詢和if語句的一些組合,但是都沒有得出這個結果。
一個示例表是:
id a b
1 1 1
1 1 2
1 1 3
2 2 3
2 2 3
2 2 4
3 3 3
3 3 4
3 4 5
4 4 4
4 4 4
4 5 5
5 5 6
5 5 7
5 6 8
對於ID 1和ID 4,結果應為TRUE ,對於ID 2,3和ID 5,結果應為FALSE 。決策規則為:“通過id ,檢查a的每個唯一值是否至少有一個觀測值,其中b的值等於a的值“。
與其他問題一樣,答案應僅輸出結果為FALSE的ID,或將偽變量附加到數據集以指示是否滿足條件。
我們需要group by
s進行兩個group by
。
內group by
,對於每個(id, a)
是否有任何b
匹配該值a
外group by
,對於每個id
,在那里的任何a
即沒有必須的匹配值b
select id, max(result) <> 0 as [result2]
from
(
select id, sum(iif(a=b, 1,0)) > 0 as [result]
from [table]
group by id, a
)
group by id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.