Отличный счет за две таблицы. SQL

Я очень новичок в SQL, я прошу прощения, если что-то не имеет смысла!

У меня есть two tables каждая из которых имеет столбец 'client_nbr' . Некоторые из client_nbrs будут overlap в двух таблицах. Мне нужно count количество людей с определенным значением в столбце 'age' которое находится в обеих таблицах. Например, результаты должны иметь что-то вроде

 age - 5 count - 3,000 

И это будет только считать номер клиента один раз, даже если он находится в обеих таблицах.

Когда я делаю это для одной таблицы, я запускаю:

 Select age, count(distinct(client_nbr)) From table1 Group by age 

Я попытался следовать примеру здесь: http://www.sqlservercurry.com/2011/07/sql-server-distinct-count-multiple.html?m=1

С помощью:

 Select table1.age,table2.age, Count(distinct(table1.client_nbr)) as total From table1,table2 Where table1.client_nbr=table2.client_nbr Group by table1.age,table2.age 

Однако это не сработало. Общий счет был меньше, чем когда я запускал отчетный счет только по таблице1.

Заранее спасибо!

Попробуйте это вместо этого:

 SELECT age, COUNT(DISTINCT client_nbr) AS Total FROM ( SELECT age, client_nbr FROM table1 UNION ALL SELECT age, client_nbr FROM table2 ) AS t GROUP BY age 

Вы используете неявное внутреннее соединение в своем запросе, так как возвращаются только значения, содержащиеся в обеих таблицах. Используйте внешнее соединение, чтобы получить все значения в обеих таблицах.

 Select table1.age,table2.age, Count(distinct(table1.client_nbr)) as total From table1 FULL OUTER JOIN table2 ON table1.age = table2.age Group by table1.age,table2.age 
  • Различия с Count и SQl Server 2005
  • Подсчитывать различные значения на основе критериев в нескольких столбцах
  • Как подсчитать строку в SQL SERVER 2012 с помощью sys.partitions
  • Подсчет количества раз, когда появляется идентификатор сеанса (MSSQL)
  • Подсчитать запрос, необходимый для уникальных записей
  • SQL - поиск дубликатов полей и подсчет количества полей
  • SQL - выбор счетчиков из нескольких таблиц
  • Считать столбцы со значением x по крайней мере один раз
  • Считайте строку и получите последнюю строку по дате из нескольких таблиц.
  • Процедура процедуры SQL Server для получения результатов и результатов в одном вызове
  • Количество дней, когда запись не записывается SQL
  • Давайте будем гением компьютера.