假设我有一个如下所示的表:
id 属性
1 足球
1 美国橄榄球联盟
1个球
2 足球
2 亲笔签名
2 橄榄球
2 废话
2 美式橄榄球
我想获得一个不同的 id 列表,其中属性列包含术语“足球”、“NFL”和“球”。所以 1 将被包括在内,但 2 不会。在 Terdata 中执行此操作的最优雅/最有效的方法是什么?
每个 id 的属性数量可能不同,并且术语可以重复。例如,对于 id 2,NFL 出现了两次。
您可以使用以下内容:
select id
from yourtable
where attribute in ('football', 'NFL', 'ball')
group by id
having count(distinct attribute) = 3
请参阅SQL Fiddle with Demo(fiddle 显示 MySQL,但这应该适用于 TeraData)