簡體   English   中英

按組檢查每個唯一值是否至少有一行,其中該字段的值等於另一個字段的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM