使用连接在一个Select语句中多个计数?

时间:2012-04-22 02:41:50

标签: sql sql-server sql-server-2008

这将返回Table&中行数的计数。 Table2复杂,但我想仅返回Table2的计数,最好是在一个选择语句中。

 SELECT Table.Name, Count(Table2.Active) FROM Table
 LEFT JOIN Table2 ON Table2.Active = 1

建议?

2 个答案:

答案 0 :(得分:2)

为什么要为第一个表中的每一行从第二个表中提取一次计数?这非常低效。好多了:

DECLARE @c INT;
SELECT @c = COUNT(*) FROM dbo.Table2;
SELECT Name, @c FROM dbo.Table;

不,这不符合您对“单一陈述”的要求,但我很好奇为什么您认为这是衡量一个好的或有效的查询的方法。

答案 1 :(得分:1)

SELECT子句中写下查询:

SELECT Table.Name, (SELECT Count(Active) FROM Table2) 
FROM Table
 LEFT JOIN Table2 ON Table2.Active = 1

我没有更改你的表“加入”,但它没有任何意义。