sql >> Database >  >> RDS >> Mysql

hoe werken de groupby en count in sql

Een selectie geeft u relationeel een resultatenset. Als u uw selectie op een veld groepeert, worden de rijen van de resultatenset gegroepeerd op dat veld en is elke rij van de resultatenset specifiek voor de groep resultaten.

U hebt bijvoorbeeld een tabel met de naam Dieren met de volgende velden:

Type | Gender | Name

Als u deze zoekopdracht uitvoert (bijvoorbeeld in MySQL):

 select Type, Gender, Name from Animals where Type <> 'Pig'

je krijgt alle dieren die geen 'varken' zijn. Als een rij Type ='varken' heeft, wordt deze opgenomen in de resultaten.

Deze vraag:

select Type, Gender, count(*) from Animals group by Type, Gender

zal zoveel rijen hebben:aantal typen * aantal geslachten

Je kunt voorwaarden maken voor je groep door de hebbende clausule in MySQL te gebruiken.

Lees meer hier

Het verschil tussen count(*) en count(browser) is dat de eerste het aantal records retourneert, de tweede het aantal records retourneert waar not (browser is null) .

Probeer een rij in te voegen waar browser is null en voer vervolgens 1) en 2) uit, dit is de beste test.



  1. Mysql-tabelkolom kan niet nul zijn

  2. Ado Entiteit:Behandel Tiny als Boolean =false

  3. Hoe kan ik gegevens van CSV naar MySQL importeren?

  4. script(while-loop) stopt en heeft geen output wanneer meerdere kolommen zijn geselecteerd