Re: Simple aggregate query brain fart

Поиск
Список
Период
Сортировка
От Plugge, Joe R.
Тема Re: Simple aggregate query brain fart
Дата
Msg-id BD69807DAE0CE44CA00A8338D0FDD08302CF162D5E@oma00cexmbx03.corp.westworlds.com
обсуждение исходный текст
Ответ на Simple aggregate query brain fart  (Mark Fenbers <Mark.Fenbers@noaa.gov>)
Список pgsql-sql
Mark,

Change your query to this:

SELECT id, count(*) FROM mytable GROUP BY id  HAVING count(*) > 2;

-----Original Message-----
From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Mark Fenbers
Sent: Thursday, March 18, 2010 10:07 AM
To: pgsql-sql@postgresql.org
Subject: [SQL] Simple aggregate query brain fart

I want to do:

SELECT id, count(*) FROM mytable WHERE count(*) > 2 GROUP BY id;

But this doesn't work because Pg won't allow aggregate functions in a where clause.  So I modified it to:

SELECT id, count(*) AS cnt FROM mytable WHERE cnt > 2 GROUP BY id;

But Pg still complains (that column cnt does not exist).  When using an GROUP/ORDER BY clause, I can refer to a column
number(e.g., GROUP BY 1) instead of a column name, but how can I refer to my unnamed second column in my where clause? 

Mark



В списке pgsql-sql по дате отправления:

Предыдущее
От: Mark Fenbers
Дата:
Сообщение: Simple aggregate query brain fart
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Simple aggregate query brain fart