[SQL]Hackerrank - New Companies


問題を解く
joinとgroupの問題を利用します.

select c.company_code, c.founder,
count(distinct m.lead_manager_code),count(distinct m.senior_manager_code),
count(distinct m.manager_code),
count(distinct m.employee_code)
from company c inner join employee m 
on c.company_code=m.company_code 
group by c.company_code,c.founder 
order by c.company_code ;

振り返る


distinctを使用して
  • の一意の値を計算する場合、count
  • groupbyの場合、2つの標準となるコラムが同じキー値で対応しても関係ありません.重要なのはcount、maxなどの演算があるコラムを除いて、他のコラム(ここではcompany codeとfounder)がgroupbyに置かれているので、間違いはありません.