Mam poniższej tabeli pet
w bazie menagerie
:Dlaczego funkcja COUNT() pokazuje tylko jeden wiersz tabeli?
+--------+-------------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------------+---------+------+------------+------------+
| Tommy | Salman Khan | Lebre | NULL | 1999-01-13 | 0000-00-00 |
| Bowser | Diane | dog | m | 1981-08-31 | 1995-07-29 |
+--------+-------------+---------+------+------------+------------+
Teraz Jeżeli uruchomić następujące zapytanie:
select owner, curdate() from pet;
pojawia się następujący komunikat:
+-------------+------------+
| owner | curdate() |
+-------------+------------+
| Salman Khan | 2016-09-12 |
| Diane | 2016-09-12 |
+-------------+------------+
Wyjście pokaż wszystkie wartości owner
i wartość zwróconą z curdate()
w każdym wierszu.
Teraz gdybym uruchomić następujące zapytanie:
select owner, count(*) from pet;
pojawia się następujący komunikat:
+-------------+----------+
| owner | count(*) |
+-------------+----------+
| Salman Khan | 2 |
+-------------+----------+
Moje pytanie brzmi: jaka jest różnica między curdate()
i count()
funkcji, która sprawia MySQL
do wyjścia z drugi owner
Diane w pierwszym przykładzie?
@KevinEsche Tak, to jest wykonywane. Skopiowałem polecenia i tabele z 'cmd'. – user31782
Otrzymujesz 1 linię, która została wkręcona bez 'group by': p – Drew
To zapytanie jest nieprawidłowe i powinno wywołać błąd. (Być może nowsze wersje MySQL będą?) – jarlh