2017-08-24 80 views
-1

我有一個產品的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

您可以使用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 
        ) 
      ); 
+0

你好,謝謝你非常感謝你的幫助。不幸的是,第一個查詢顯示沒有記錄。高度,寬度和深度設置爲「浮動」。這可以成爲這個查詢返回沒有值的原因嗎? – TylerDurden887

+0

@ TylerDurden887。 。 。有可能。如果它們表示爲浮點數,看起來相同的兩個值實際上可能會有很小的差異。 –