Как поделить друг на друга два запроса с различными условиями?
Есть таблица, в которой колонка менеджеров и колонка со статусами. Как посчитать сумму статусов Fully, деленную сумму записей со всеми статусами кроме N/A по каждому менеджеру?
Пытался изобразить таким способом, но ничего не вышло
SELECT "Manager Name", ((SELECT count("Performance Score") FROM public.hr_dataset
WHERE ("Performance Score" = 'Fully Meets'))/ (SELECT count("Performance
Score") FROM public.hr_dataset
WHERE ("Performance Score" != 'N/A- too early to review') )) as Perfomance
FROM public.hr_dataset GROUP BY "Manager Name"
ORDER BY Perfomance DESC;'''
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
SELECT name, SUM(status='Fully')/SUM(Status!='N/A')
FROM table
GROUP BY name
или
SELECT name, COUNT(CASE WHEN status='Fully' THEN 1 END)/COUNT(CASE WHEN Status!='N/A' THEN 1 END)
FROM table
GROUP BY name
Автор решения: santavital
→ Ссылка
Select Manager, count(*) as FullyStatus, count(*) / NoNA.NoNAStatus as Result
Group by Manager
Where Status = 'Fully'
Left join (
Select count(*) as NoNAStatus
Where Status <> 'N/A') as NoNA ON true