如何找到至少有一个不同尺寸的产品?

时间:2017-08-24 10:55:45

标签: sql product dimension

我有一个非常简单的表,其中包含产品的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我们有多个维度组合?

非常感谢您提前寻求帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用group byhaving

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
                    )
             );