Сумма количества в SQL Server

#sql #sql-server

#sql #sql-сервер

Вопрос:

У меня есть такие данные,

 id  state   country name    years
1   ohio        US          steve       2020-08-11
2   delhi       india       priya       2019-09-01
3   ohio        US          alex        2020-07-11
4   NY          US          kristen     2018-06-11
5   hyderabad   india       riya        2019-08-16
6   hyderabad   india       isha        2019-05-04
 
 select (count(*)) as 'Counts',country, state
from dbo.people
group by country, state
having count(*)>1 
 

Я написал приведенный выше запрос для подсчета людей, живущих в одном и том же состоянии

 counts country      state
2     india         hyderabad 
2      US           ohio      
 

не могли бы вы помочь мне написать запрос, который вернет сумму подсчета, а затем добавит 1 к сумме,
Заранее спасибо

Комментарии:

1. Если вы хотите добавить 1 к a COUNT , тогда просто 1 .

Ответ №1:

Вы можете задать свой первоначальный запрос как CTE (общее табличное выражение) для суммирования их количества :

 with initial_query as (
  select (count(*)) as 'Counts',country, state
  from dbo.people
  group by country, state
  having count(*)>1 
)
select sum(Counts)   1 as Counts
from initial_query
 

Комментарии:

1. Большое спасибо Marc за ответ, если мне нужно упорядочить его по имени, нужно ли мне использовать row_number в подзапросе

2. @csharpdev почему вы хотите заказать сумму?, может быть, если вы покажете нам результат, который вы хотите получить, мы сможем помочь вам его достичь.

3. Привет, Марк, например, например, если год = 16 августа 2019 года, мне нужно найти количество всех дат, меньших этой даты, т.е. ‘2019-05-04’ для того же года количество будет равно 1, а затем добавьте 1 к количеству выберите количество (*), годы от [практика].[dbo]. [Люди] группировка по годам порядок по годам desc Количество лет 1 2020-08-11 1 2020-07-11 1 2019-09-01 1 2019-08-16 1 2019-05-04 1 2018-06-11