Как рассчитать разные национальности для сотрудника без Row_Number () - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть следующий запрос для получения разных национальностей для сотрудника:

SELECT 
    an.EmployeeId,c.CountryId, 
    ROW_NUMBER() OVER(PARTITION BY an.EmployeeId ORDER BY an.EmployeeId) AS rn
FROM 
    Nationality an
JOIN 
    country c ON an.CountryId = c.id

, который возвращает следующий результат:

EmployeeId CountryId rn
-----------------------
45          1        1
45         26        2
33         45        1
66         90        1

Мой ожидаемый результат, как показано ниже, я хочу его без row_number():

EmployeeId Count 
----------------
45         2         
33         1        
66         1  

Ответы [ 2 ]

3 голосов
/ 28 февраля 2020

Ваш запрос должен быть как ниже:

 SELECT an.EmployeeId ,count(c.ID) AS nationalitycount
    FROM AF_Nationality an
    JOIN country c ON an.CountryId = c.id
    GROUP BY an.EmployeeId 
1 голос
/ 28 февраля 2020

Вам не нужно объединяться с таблицей стран

Вы можете просто использовать приведенный ниже запрос.

select EmployeeId, Count(CountryID) 
From Nationality 
Group By EmployeeId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...