我需要GROUP BY item_id并检查其中user_id任何一个匹配变量.如果是这样,我希望它= 1,如果不是0.
例如,想像这样的表:
item_id, user_id
1 1
1 3
2 4
2 1
2 7
2 3
3 4
3 6
4 8
4 1
5 3
IF (user_id = 3,1,0) AS match,
Run Code Online (Sandbox Code Playgroud)
希望我的查询返回
item_id, match
1 1
2 1
3 0
4 0
5 1
Run Code Online (Sandbox Code Playgroud)
其中"1"在item_id组中出现所有user_id 3.
您需要正确的聚合功能:
select item_id,
max(case when user_id = 3 then 1 else 0 end) as hasmatch
from t
group by item_id
order by item_id
Run Code Online (Sandbox Code Playgroud)