У меня есть таблица сотрудников с повторяющимися экземплярами сотрудников. Например, фамилия Баба может появляться 2 раза с одним и тем же идентификатором сотрудника. Я должен посчитать фамилии из таблицы, но не хочу считать одну и ту же дважды.
Я пишу SQL в Postgres. Вот таблица, из которой я рисую свой запрос:
CREATE TABLE Employee (
emp_no int NOT NULL,
birth_date date NOT NULL,
first_name varchar(100) NOT NULL,
last_name varchar(100) NOT NULL,
gender varchar(100) NOT NULL,
hire_date date NOT NULL,
CONSTRAINT pk_Salaries PRIMARY KEY (
emp_no
)
);
Данные были предоставлены и содержали дубликаты. Я не могу удалить дубликаты, но не хочу их считать. Вот мой запрос:
SELECT Employee.last_name, COUNT(Employee.last_name) AS "Last Name Count"
FROM Employee
GROUP BY Employee.last_name
ORDER BY "Last Name Count" DESC;
Вывод работает хорошо, но я уверен, что он подсчитывает некоторые фамилии более одного раза. Я попытался добавить WHERE причину, чтобы получить число фамилий, где emp_no отличается, но это не работает.