Работает следующий запрос postgres:
dvdrental=# SELECT title, COUNT(title) AS c FROM film
JOIN inventory
ON film.film_id = inventory.film_id GROUP BY film.title LIMIT 5;
title | c
------------------+---
Academy Dinosaur | 8
Ace Goldfinger | 3
Adaptation Holes | 4
Affair Prejudice | 7
African Egg | 3
(5 rows)
Time: 1.671 ms
Тогда, если я хочу ограничить, скажем, чтобы фильмы с определенным количеством копий в инвентаре, или посчитать, сколько фильмов имеет определенное количество в инвентаре, отправной точкой будет:
dvdrental=# SELECT title, COUNT(title) AS c FROM film
JOIN inventory
ON film.film_id = inventory.film_id GROUP BY film.title WHERE c = 4;
ERROR: syntax error at or near "WHERE"
LINE 3: ...m.film_id = inventory.film_id GROUP BY film.title WHERE c = ...
^
Time: 0.337 ms
.. но это не работает.
Я перепробовал каждую возможную позицию для WHERE c = 4
здесь, и она не будет работать. Есть ощущение, что это работало бы, если бы это был MySQL, а не PostgresSQL.
Кто-нибудь знает, как это исправить?