Estou usando o MySQL. Aqui está meu esquema:
Fornecedores ( sid: inteiro , sname: string, string de endereço)
Partes ( pid: inteiro , pname: string, cor: string)
Catálogo ( sid: inteiro, pid: inteiro , custo: real)
(as chaves primárias estão em negrito)
Estou tentando escrever uma consulta para selecionar todas as peças feitas por pelo menos dois fornecedores:
-- Find the pids of parts supplied by at least two different suppliers.
SELECT c1.pid -- select the pid
FROM Catalog AS c1 -- from the Catalog table
WHERE c1.pid IN ( -- where that pid is in the set:
SELECT c2.pid -- of pids
FROM Catalog AS c2 -- from catalog
WHERE c2.pid = c1.pid AND COUNT(c2.sid) >= 2 -- where there are at least two corresponding sids
);
Em primeiro lugar, estou mesmo fazendo isso da maneira certa?
Em segundo lugar, recebo este erro:
1111 - Uso inválido de função de grupo
O que estou fazendo de errado?