Использование функции count (*) с несколькими таблицами подзапросов

#sql #sql-server #count #subquery

#sql #sql-сервер #подсчет #вложенный запрос

Вопрос:

Мне было поручено найти следующее: «Сколько сотрудников используют самый дорогой компьютер с точки зрения общей стоимости пакета программного обеспечения, установленного на компьютере?»

Я смог найти первичные ключи сотрудников, связанных с самым дорогим компьютером, используя:

 With table3 as  
(select comp from PC where tagnum in
(select tagnum from 
(select tagnum, sum(softcost)'Totalcost' from software
group by tagnum) as Table1
where Totalcost = 
(select max(Totalcost)'MaxTotal' 
from
(select tagnum, sum(softcost)'Totalcost' 
from software
group by tagnum
) as Table2
)))
select empnum from PC 
where PC.comp in
 (select comp from table3 where PC.comp = table3.comp)
  

Однако я не могу найти количество сотрудников с этими результатами. Есть идеи, как я могу это сделать?

Я прикрепил свои данные ниже… введите описание изображения здесь

Комментарии:

1. Какую сумму вы называете самой дорогой?

2. Я считаю, что это должно быть 2754.9.

Ответ №1:

Как вы упомянули, если ваш запрос выполняется нормально. затем вы можете использовать distinct count, чтобы узнать, сколько сотрудников используют этот компьютер.

 With table3 as  
(select comp from PC where tagnum in
(select tagnum from 
(select tagnum, sum(softcost)'Totalcost' from software
group by tagnum) as Table1
where Totalcost = 
(select max(Totalcost)'MaxTotal' 
from
(select tagnum, sum(softcost)'Totalcost' 
from software
group by tagnum
) as Table2
)))
select COUNT( Distinct empnum) from PC 
where PC.comp in
 (select comp from table3 where PC.comp = table3.comp)