这是指令:
在DocStatus
表中显示两个最大的资本及其相应的公司名称。
这是表格DocStatus
:
DocID Company Capital
2001 Teewai.com Inc. 250000.00
2002 Fave Company 250000.00
2003 Goldilocks Bakeshop Corp 500000.00
2004 Collegian Exponent Inc. 100000.00
2005 Uniphil Computer Inc. 250000.00
问题:
对此的正确查询是什么?谢谢。
( 500000和250000是前两名,但有3家公司的资本相同,为250000 )
答案 0 :(得分:4)
如果您只需要最前面的2条记录,请尝试以下方法:
SELECT TOP 2 *
FROM DocStatus
ORDER BY Capital DESC,Company
它将按Capital的降序对结果进行排序。如果多个记录具有相同的资本,它将按公司名称的升序对它们进行排序。最后,选择前2条记录。
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2002 Fave Company 250000
请参阅SQL Fiddle
中的结果或
如果您想要拥有第一和第二高资本的公司,请使用:
SELECT TOP(2) WITH TIES * FROM DocStatus
ORDER BY Capital DESC
此子句的优点在于它可以与WITH TIES
子句一起使用,以将所有类似的行检索到基本结果集。
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2001 Teewai.com Inc. 250000
2002 Fave Company 250000
2005 Uniphil Computer Inc. 250000
了解更多here。
答案 1 :(得分:2)