COUNT() to funkcja agregująca, która jest zwykle połączona z GROUP BY klauzula.
curdate() to funkcja daty, która wyświetla bieżącą datę.
Tylko MySQL (o ile wiem) pozwala na tę składnię bez użycia GROUP BY klauzula. Ponieważ go nie podałeś, COUNT(*) policzy całkowitą liczbę wierszy w tabeli, a owner kolumna zostanie wybrana losowo/domyślnie optymalizatora/według indeksów.
To powinno być Twoje zapytanie :
select owner, count(*)
from pet
group by owner;
Który mówi optymalizatorowi, aby zliczył całkowitą liczbę wierszy, dla każdego właściciel.
Gdy nie wspomniano o klauzuli group by - funkcje agregacji są stosowane do wszystkich danych w tabeli.
EDYTUJ: Liczba, która zostanie zastosowana do każdego wiersza, nie może być normalnie wykonana za pomocą COUNT() i zwykle używane z funkcją analityczną -> COUNT() OVER(PARTITION...) który niestety nie istnieje w MySQL. Inną opcją jest wykonanie JOIN/CORRELATED QUERY dla tej dodatkowej kolumny.
Kolejna edycja: Jeśli chcesz zsumować liczbę przy każdym właścicielu, możesz użyć podzapytania:
SELECT owner,
(SELECT COUNT(*) FROM pet) as cnt
FROM pet