2013-03-11 89 views
2

我想在SQL服务器中执行以下查询,但出现错误。有人能解释我如何计算内部选择语句吗?从内部选择语句计数

SELECT COUNT(*) from 

(Select ID, 
     COUNT(ID) 
    FROM [Testing].[dbo].[Bench] group by ID having COUNT(*) =5); 
+2

什么是错误讯息? – Taryn 2013-03-11 17:55:27

+0

如果您计算每行找到的所有列,那么您应该保留*。否则,在计算找到的行时应使用特定的列名称。只是一个指针 – Mic1780 2013-03-11 18:14:14

回答

6

我想你只是错过了第二列的名称:

SELECT COUNT(*) 
FROM (
    Select id, COUNT(id) count_of_id 
    FROM [Testing].[dbo].[Bench] 
    GROUP BY id 
    HAVING COUNT(*) =5 
); 
+0

AAaaahhhh!傻我。你是对的。非常感谢你。 – Huzaifa 2013-03-11 17:58:03

+1

SQL Server在子查询上需要一个别名。 – Taryn 2013-03-11 18:08:39

5

试试下面的代码:

SELECT COUNT(*) from 

(Select ID, 
     COUNT(ID) as cnt 
    FROM [Testing].[dbo].[Bench] group by ID having COUNT(*) =5) tbl; 
+0

我错过了第二列的名字 – Huzaifa 2013-03-11 17:58:23

+0

@John添加了第二列名为你工作? – 2013-03-11 18:02:26

+0

@约翰你还需要命名表。 – 2013-03-11 18:04:44