从至少有3个大于3的反馈的表中选择productid

  • 本文关键字:productid 选择 3个 大于 mysql sql
  • 更新时间 :
  • 英文 :


我有一个包含三列(id、productID和feedback(的表,其中包含反馈:

id | productID     | feedback
.............................
1  | 1000          | 5
2  | 1000          | 4
3  | 1000          | 3
4  | 1001          | 5
5  | 1002          | 5
6  | 1002          | 5
7  | 1003          | 4
8  | 1003          | 5
9  | 1003          | 5

我想选择一个至少有3个反馈的productID,并且没有一个反馈的值小于4。在这种情况下,1003是我想要得到的。

select t.prodid,count(t.prodid) from table as t 
where not exists 
(select 1 from table as t2 where t2.prodid=t.prodid and t2.feedback<4) 
group by t.prodid 
having count(*)>=3 

使用聚合:

SELECT productID
FROM yourTable
GROUP BY productID
HAVING SUM(feedback > 3) >= 3;

我认为您希望在这里使用MIN来满足要求。

SELECT 
productID
FROM 
tableName
GROUP BY 
productID
HAVING 
MIN(feedback) >= 3;

最新更新