首页 > 解决方案 > 如何获取 SQL 中每个唯一相邻值中的值?

问题描述

我正在尝试获取与给定表中的每个 vid 值成一行的所有 oid 值。此处可以看到此类表的示例,称为 Temp1:

oid vid
-------
 1   6
 1   6
 5   6
 5   6
 5   6
 8   6
 8   7
 4   8
 5   8
 8   8
 4   9
 6   9
 5   9
 6   9
 8   9

正如您在此表中看到的,只有 oid 值 8 与每个 vid 值成一行。可以有重复的行,并且 oid 和 vid 值可以是任何整数。

标签: sql

解决方案


使用聚合和having

select t.oid
from Temp1 t
group by t.oid
having count(distinct vid) = (select count(distinct t2.vid) from Temp1 t2);

推荐阅读