sql >> Databáze >  >> RDS >> Mysql

MySQL:Neplatné použití skupinové funkce

Musíte použít HAVING , nikoli WHERE .

Rozdíl je v tom:WHERE klauzule filtruje, které řádky MySQL vybírá. Potom MySQL seskupuje řádky dohromady a agreguje čísla pro váš COUNT funkce.

HAVING je jako WHERE , stane se to pouze po COUNT hodnota byla vypočtena, takže to bude fungovat, jak očekáváte. Přepište svůj dílčí dotaz jako:

(                  -- where that pid is in the set:
SELECT c2.pid                  -- of pids
FROM Catalog AS c2             -- from catalog
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)


  1. rozdělení alfa a čísel pomocí sql

  2. PostgreSQL:Dotaz nemá žádný cíl pro výsledná data

  3. PLNÉ PŘIPOJENÍ k MySQL?

  4. Složitý dotaz Postgres