Estoy usando MySQL. Aquí está mi esquema:MySQL: uso no válido de la función de grupo
Proveedores (sid: enteros, Sname: cadena, cadena de dirección)
piezas (pid: enteros, pname: cuerda, color: String)
Catálogo (sid: entero, pid: entero, costo: bienes)
(claves primarias están en negrita)
soy t rying escribir una consulta para seleccionar todas las partes que están formadas por al menos dos proveedores:
-- 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
);
En primer lugar, ¿estoy incluso ir sobre esto de la manera correcta?
En segundo lugar, me sale este error:
1111 - Invalid use of group function
¿Qué estoy haciendo mal?
Entonces 'HAVING' cuenta primero y luego filtros, ¿verdad? –
También si se usa GROUP BY, HAVING debe ser posterior a GROUP BY – Viacheslav
Además, GROUP BY debe estar antes de HABER ... Debería haber leído el comentario de Bandolero: D – Andrew