sql >> Database teknologi >  >> RDS >> Mysql

Hvad er den semantiske forskel mellem WHERE og HAVING?

HAVING fungerer på den opsummerede række - WHERE opererer på hele tabellen før GROUP BY anvendes. (Du kan ikke sætte GROUP BY til side, HAVING er en klausul reserveret til brug med GROUP BY - udelade GROUP BY ændrer ikke den implicitte handling, der finder sted bag kulisserne).

Det er også vigtigt at bemærke, at på grund af dette, WHERE kan bruge et indeks, mens du HAVING kan ikke. (I super trivielle u-grupperede resultatsæt kan du teoretisk bruge et indeks for HAVING , men jeg har aldrig set en forespørgselsoptimering faktisk implementeret på denne måde).



  1. Sådan importeres CSV-fil i PostgreSQL

  2. Hvordan tilføjer jeg en stemme til min database i en formular?

  3. Oprettelse af en SQL Server-tabel fra en C#-datatabel

  4. Tjek begrænsning i SQL