3.3.4.8 räkna rader
databaser används ofta för att svara på frågan, ”hur ofta förekommer en viss typ av data i en tabell?”Till exempel kanske du vill veta hur många husdjur du har, eller hur många husdjur varje ägare har, eller du kanske vill utföra olika typer av folkräkningsoperationer på dina djur.
att räkna det totala antalet djur du har är samma fråga som ”hur många rader finns i tabellen pet
?,”eftersom det finns en post per husdjur. COUNT(*)
räknar antalet rader, så frågan om att räkna dina djur ser ut så här:
tidigare hämtade du namnen på de personer som ägde husdjur. Du kan användaCOUNT()
om du vill ta reda på hur många husdjur varje ägare har:
föregående fråga använderGROUP BY
för att gruppera alla poster för varjeowner
., Användningen av COUNT()
tillsammans medGROUP BY
är användbar för att karakterisera dina data under olika grupperingar. Följande exempel visar olika sätt att utföra djurräkningsoperationer.
antal djur per art:
antal djur per kön:
(i denna utgång indikerar NULL
att kön är okänt.,)
antal djur per kombination av arter och kön:
du behöver inte hämta en hel tabell när du använderCOUNT()
. Till exempel, den tidigare frågan, när den utförs bara på hundar och katter, ser ut så här:
eller, om du ville ha antalet djur per kön endast för djur vars kön är känt:
om du namnger kolumner för att välja förutom värdet COUNT()
, bör en GROUP BY
– klausul vara närvarande som namnger samma kolumner. Annars sker följande:
Se även avsnitt 12.20.,3, ”MySQL Hantering av GRUPP AV”. Se avsnitt 12.20.1, ”Aggregate Function Descriptions” för information omCOUNT(
beteende och relaterade optimeringar.expr
)