SQL Server 2005中的TOP函数没有给出正确的答案

时间:2012-03-06 11:33:19

标签: sql-server-2005

如何在表中的单个列上使用SQL Server 2005中的TOP函数以及count函数?

我只得到一个这个查询的计数,我应该有35个条目。 这是我的查询

select top(1) room_no, count(room_no) from rooms

2 个答案:

答案 0 :(得分:1)

看起来像你想要的是以下内容:

select room_no,count(room_no)
from rooms
group by room_no

BTW,我想知道为什么没有group by就会执行。应该抛出错误。

答案 1 :(得分:0)

在TOP之后评估COUNT函数。这就是为什么你只得到一个计数。你想要的是这样的东西

SELECT TOP(1) dbo.Table.Column1, (SELECT COUNT(*) FROM dbo.Table)
FROM dbo.Table

同样如上所述,你真的应该通过某种方式订购。

编辑:这也有效:

SELECT TOP(1) dbo.Table.Column1, COUNT(*) OVER() AS Total
FROM dbo.Table

似乎也更有效(尽管只在小数据集上测试过)。