Sql 如何选择正好满足n次的元素?

Sql 如何选择正好满足n次的元素?,sql,Sql,我有下表: +-----+---------+---------+ | id | text | videoid | +-----+---------+---------+ | 1 | person | 1 | | 2 | vehicle | 1 | | 3 | animal | 1 | | 4 | person | 2 | | 5 | vehicle | 2 | 如何选择具有3个标签(人、车辆和动物)

我有下表:

+-----+---------+---------+
| id  | text    | videoid |
+-----+---------+---------+
|   1 | person  |       1 |
|   2 | vehicle |       1 |
|   3 | animal  |       1 |
|   4 | person  |       2 |
|   5 | vehicle |       2 |
如何选择具有3个标签(人、车辆和动物)的
videoid

在我们的例子中,它只是第一个
videoid
=1,因为
videoid
=2没有足够的标签,只有2个(个人和车辆)

您可以聚合计数(不同的(名称),按广告使用分组过滤结果

如果你需要3个不同的文本

 select videoid 
 from my_table 
 group by videoid
 having count( distinct(text)) = 3
或者,如果你也接受重复的文本

 select videoid 
 from my_table 
 group by videoid
 having count( *) = 3

按计数(*)为3的id分组