我使用以下查询在记录中遇到问题
SELECT user_id FROM temp WHERE (value = 1 AND field_id = 11) AND value = 1 AND field_id = 12
这是table。我应该得到101个用户名的记录。有什么想法吗?
m528fe3b1#
您需要按用户聚合:
SELECT user_id FROM temp GROUP BY user_id HAVING SUM(CASE WHEN value = 1 AND field_id = 11 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN value = 1 AND field_id = 12 THEN 1 ELSE 0 END) > 0;
hi3rlvi22#
尝试使用以下sql从临时值中选择不同的用户id,其中值=1和(字段id=12或字段id=11)
uwopmtnx3#
你也可以使用 where 条款:
where
select user_id from table t where value = 1 and field_id in (11, 12) group by user_id having count(distinct field_id) = 2;
3条答案
按热度按时间m528fe3b1#
您需要按用户聚合:
hi3rlvi22#
尝试使用以下sql从临时值中选择不同的用户id,其中值=1和(字段id=12或字段id=11)
uwopmtnx3#
你也可以使用
where
条款: