我有一个非常简单的表,其中包含产品的product_id及其高度,宽度和深度。 Product_id可以在我正在使用的表中多次存在,因此我使用了不同的语句。 但是,特定product_id的高度,宽度和深度的组合应该是唯一的。
以下示例: 对于product_id 1003,没关系,因为它只有一个维度组合(6,2,2) 对于product_id 1002,它不合适,因为它有两种尺寸组合(7,3,3和9,3,3)
如何告诉sql只显示这些记录,如1002,哪个product_id我们有多个维度组合?
非常感谢您提前寻求帮助。
答案 0 :(得分:0)
您可以使用group by
和having
:
select product_id
from t
group by product_id
having min(height) <> max(height) or
min(width) <> max(width) or
min(depth) <> max(depth);
如果您想要原始表中的行列表,则建议采用不同的方法 - 使用exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.product_id = t.product_id and
(t2.height <> t.height or t2.width <> t.width or
t2.depth <> t.depth
)
);