Вашият проблем:
За съжаление строгостта на Postgres нарушава тази заявка, защото изисква всички полета да бъдат посочени в групата по клауза.
Сега това се промени донякъде с PostgreSQL 9.1 (цитирайки бележките към версията 9.1):
Разрешаване на не-
GROUP BY
колони в списъка с цели на заявката, когато първичният ключ е посочен вGROUP BY
клауза (Peter Eisentraut)
Нещо повече, основната заявка, която описвате, дори няма да се натъкне на това:
Показване на списък с 5-те най-често използвани маркера, заедно с времето, когато са били маркирани.
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
Работи във всеки случай.