SQL:仅当在同一行中另一列具有不同的值时,才返回一列的值

时间:2018-07-27 12:46:46

标签: sql sql-server tsql select distinct

我正在处理SQL查询,在这里我想返回一列的值,仅当在同一行中另一列具有不同的值时。

以下是我的数据的示例:

表格:混合

ID           WEIGHT           
1           100             
1           100
2           150
2           150
2           150
3           200

我想返回的是:

ID          WEIGHT
1           100
2           150
3           200

这是我现在正在尝试的内容:

DECLARE @UNIQUE_INGREDIENT DECIMAL(10,3);

SET @UNIQUE_INGREDIENT = SELECT DISTINCT Mix.ID,
                                Mix.WEIGHT
                         FROM MixLot

如何编写查询以返回所需的表?

1 个答案:

答案 0 :(得分:1)

我将比较每个id的最小权重和最大权重,并仅返回它们相等的行:

SELECT   id, MAX(weight)
FROM     mytable
GROUP BY id
HAVING   MAX(weight) = MIN(weight)