sql查找一列中某一数值出现次数大于2的记录

用户id 评分
1 2
2 2
1 2
3 1
1 4
2 2

筛选出评分值为2的次数大于等于2,且评分值为4的次数大于等于1的用户记录。

比如这个筛选结果就是用户id 1.
跪求大神如何写sql语句。
万分感谢!

需要用group by中的having子句。

1、如test表中有如下数据:

2、现要查出dept出现2次以上的dept。可用如下语句:

select dept from test group by dept having count(*) >2;

3、查询结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-25
select 用户id from 表名 where 评分=2 group by 用户id having count(评分)>=2
union
select 用户id from 表名 where 评分=4 group by 用户id having count(评分)>=1

本回答被网友采纳
第2个回答  2015-07-25
select 用户id from 表 where 评分 in
(
    select 评分,count(评分)as  [times] from 表 as t group  by 评分
    where t.评分=2 and  t.[times]>=2 and t.评分=4 and t.[times]>=1
)