关于MIN()并返回行

问题描述:

的SQL查询我有一个名为BCS的表,我需要使用两列名为HPTS和Team。我需要列出HPTS中价值最低的团队的团队名称。关于MIN()并返回行

(我在访问这样做,如果这事项)

目前我有什么如下:

SELECT TEAM, MIN(HPTS) 
FROM BCS 
GROUP BY Team 

这是给我的每支球队在HTPS列中的最低值,但这对我来说是无用的信息,因为无论如何,该列中每个团队只有一个值。

我能够用先手没有相应的团队最小值:

SELECT MIN(HPTS) 
FROM BCS 

,但我需要有队名也。任何帮助,这将不胜感激。我认为这可能与使用JOIN功能有关,但我不确定。

+0

在领带的情况下该怎么办? – 2012-04-18 05:56:20

如何通过HPTS从最低订购它并将其限制为1行?

SELECT TEAM, HPTS FROM BCS order by HPTS LIMIT 1 
+0

这就是MySQL语法。 AFAIK Access使用像SQL Server这样的'SELECT TOP N'语法。 – g13n 2012-04-18 05:54:41

我没有尝试这样做了,但请尝试以下

SELECT TEAM FROM BCS where HPTS = (SELECT MIN(HPTS) FROM BCS) 

这里需要使用子查询。

SELECT * FROM BCS WHERE HPTS IN (SELECT MIN(HPTS) FROM BCS) 

在TSQL的,我相信在Access /喷气机,也可以使用TOP N子句,只要你还使用ORDER BY,以确定究竟是在“顶”。这也可能是更有效的比其他人所说的子查询:

SELECT TOP 1 Team, HPTS FROM BCS ORDER BY HPTS ASCENDING 

上升是默认的,所以你可以离开它,但它使用TOP时是如此重要,我通常把它放在欢迎来到奇妙世界。 o'SQL!

+1

请注意,在JET中,这可能会返回多条记录。 – 2012-04-18 06:39:44

+0

如果需要单个结果,而且您​​不关心是否存在匹配结果,则可以通过“ORDER BY HPTS,AnyUniqueFieldInTheTable” – Fionnuala 2012-04-18 09:37:02