0

我正在尝试比较表中的数据并输出每种类型的最小值。我知道MIN()SQL 中有一个函数,但它只会得到最低的值,这不是我想要的。

我想获取整行的数据,它在Column1中的值是最小的 foreach 类型。

这是表格的样子:

Type        Column1         Column2
-------     --------        ---------
A           1               !!!
A           2               @@@
B           3               ###
B           4               $$$
C           5               %%%
C           6               ^^^

当我使用 时SELECT MIN(Value),我得到的结果如下所示:

Type        Column1         Column2
-------     --------        ---------
A           1               !!!

我使用了GROUP BYLinger建议的方法,但结果仍然与我想要的不太相符:

Type        Column1         Column2
-------     --------        ---------
A           1               @@@
B           3               $$$
C           5               ^^^

但是,期望的结果应该是:

Type        Column1         Column2
-------     --------        ---------
A           1               !!!
B           3               ###
C           5               %%%

我将如何编写我的 SQL 查询来完成这项工作?提前致谢。

4

1 回答 1

1

这是一个简单的查询,只需使用该GROUP BY子句即可执行:

SELECT MTM.* FROM 
(
    SELECT MTS.Type, MIN(MTS.Values) AS SmallestValue
    FROM  MyTable AS MTS
    GROUP BY MTS.Type
) AS MainQ
INNER JOIN MyTable AS MTM 
ON MTM.UniqueID = MainQ.UniqueID

在上面的示例中,我正在执行MIN() GROUP BY查询,然后将结果连接到同一个表中以提取我需要的剩余字段。您应该有一个唯一标识记录的字段。使用该字段而不是UniqueID上面。

于 2013-10-28T20:05:43.173 回答