我尝试比较表格中的数据并输出每种类型的最低值。我知道SQL中有一个MIN()
函数,但它只能得到总体上最低的值,这不是我想要的。
我想获取整行的数据, 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 !!!
我使用了Linger建议的GROUP BY
方法,但结果仍然与我想要的完全匹配:
Type Column1 Column2
------- -------- ---------
A 1 @@@
B 3 $$$
C 5 ^^^
然而,希望的结果是:
Type Column1 Column2
------- -------- ---------
A 1 !!!
B 3 ###
C 5 %%%
我如何编写SQL查询来完成这项工作?提前谢谢。
答案 0 :(得分: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
。