Lista SQL resolvida
SELECT *
FROM `funcionarios`
INNER JOIN `pessoas` ON `funcionarios`.`pessoa_id` = `pessoas`.`id`
-- g2) Quais são nossos Funcionários que também são clientes?
SELECT *
FROM `funcionarios`
INNER JOIN `pessoas` ON `pessoa_id` = `pessoas`.`id`
INNER JOIN `clientes` ON `pessoas`.`id` = `clientes`.`pessoa_id`
-- g3) Quantos funcionários ganham mais que a média de salários de todos os funcionários
-- admitidos a partir de 2010?
SELECT COUNT( * ) AS `quantidade`
FROM `funcionarios`
WHERE `data_admissao` > '2010-01-01'
AND `salario` > (
SELECT AVG( `salario` )
FROM `funcionarios` )
-- g4) Qual é a marca e modelo de veículo mais atendidos pela oficina?
SELECT `marca` , `modelo` , COUNT( * ) AS `count`
FROM `ordens_servico`
INNER JOIN `veiculos` ON `ordens_servico`.`veiculo_id` = `veiculos`.`id`
GROUP BY `marca` , `modelo`
ORDER BY `count` DESC
LIMIT 1
-- g5) Quais são os itens de serviço dado um determinado serviço?
SELECT `itens`.`nome` FROM `servicos`
INNER JOIN `servicos_possui_itens` ON `servicos`.`id` = `servicos_possui_itens`.`servico_id`
INNER JOIN `itens` ON `servicos_possui_itens`.`item_id` = `itens`.`id`
WHERE `servicos`.`id` = 1
-- g6) Quais são os dez Clientes para os quais as ordens de serviço demandaram maior
-- tempo na oficina (por ordem do maior para o menor tempo).
SELECT `clientes`.`id`,
`pessoas`.`nome`,
DATEDIFF(`ordens_servico`.`saida`, `ordens_servico`.`entrada`) AS `intervalo`
FROM `pessoas`
INNER JOIN `clientes` ON `pessoas`.`id` = `clientes`.`pessoa_id`
INNER JOIN `ordens_servico` ON `clientes`.`id` = `ordens_servico`.`cliente_id`
WHERE `ordens_servico`.`saida` IS NOT NULL
GROUP BY `clientes`.`id`
ORDER BY DATEDIFF(`ordens_servico`.`saida`, `ordens_servico`.`entrada`) DESC
LIMIT 0, 10
-- g7) Quais são os Clientes que ainda não foram atendidos (veículos na oficina)?
SELECT `clientes`.`id` , `pessoas`.`nome`