Новое в SQL, используя MS SQL Sever Management Studio с AdventureWorks образца DB:Как объединить два оператора select в одну таблицу с двумя отдельными столбцами?
Попытка объединить два SELECT
заявления каждый из которых содержит COUNT
мужского и женского пола сотрудников. Я могу получить оба счета, чтобы возвращать две строки в одной таблице, используя UNION ALL.
SELECT COUNT(HumanResources.Employee.Gender) AS 'Male Employees'
FROM HumanResources.Employee
WHERE Employee.Gender = 'M'
UNION ALL
SELECT COUNT(HumanResources.Employee.Gender) AS 'Female Employees'
FROM HumanResources.Employee
WHERE Employee.Gender = 'F';
Однако я пытаюсь получить COUNT
каждого M/F в двух отдельных столбцах. Удалось создать два отдельных столбца, но их нет.
SELECT Set1.[Male Employees], Set2.[Female Employees]
FROM
(
SELECT COUNT(Employee.Gender) AS 'Male Employees'
FROM HumanResources.Employee
WHERE Employee.Gender = 'M'
) as Set1
INNER JOIN
(
SELECT COUNT(Employee.Gender) AS 'Female Employees'
FROM HumanResources.Employee
WHERE Employee.Gender = 'F'
) as Set2
on Set1.[Male Employees] = Set2.[Female Employees]
Я чувствую, что я что-то очевидное отсутствует ..
Я вижу, кажется намного более эффективным, чем использование 'INNER JOIN' – girthquake