sql сумма отсчетов - PullRequest
10 голосов
/ 26 мая 2011

У меня есть две таблицы и я хочу общее количество строк в каждой. Фактический запрос является более сложным, поскольку для каждого счетчика будут предложения where ...

Как мне сделать следующее в t-sql (ни один из которых не работает)?

select count(*) from table1 + count(*) from table2

или

select sum(count(*) from table1,count(*) from table2)

Ответы [ 2 ]

10 голосов
/ 26 мая 2011
select SUM(cnt) from
(
    select COUNT(*) as cnt from table1 where /* where conditions */
    union all
    select COUNT(*) from table2 where /* where conditions */
) t

Казалось бы, уловка, разделение запросов разных таблиц и простое расширение до нескольких таблиц.

7 голосов
/ 26 мая 2011
select  (select count(PrimaryKeyID) from  FirstTable) 
      + (select COUNT(PrimaryKeyID) from TableSecond)

Так что я думаю, что мы должны избегать использования звездочки в следующем запросе.Как это может привести к снижению производительности в вашем запросе

select  (select count(*) from  FirstTable) 
      + (select COUNT(*) from TableSecond)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...