Re: 7.3 "group by" issue

From: "Chad Thompson" <chad(at)weblinkservices(dot)com>
To: "Dan Langille" <dan(at)langille(dot)org>, "pgsql-sql" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: 7.3 "group by" issue
Date: 2003-02-21 20:30:56
Message-ID: 050201c2d9e8$23acc340$32021aac@chad
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> On 21 Feb 2003 at 13:00, Chad Thompson wrote:
>
>
> > > On 21 Feb 2003 at 19:18, Gaetano Mendola wrote:
> > >
> > > > > Hi folks,
> > > > >
> > > > > This query:
> > > > >
> > > > > SELECT element_id as wle_element_id, COUNT(watch_list_id)
> > > > > FROM watch_list JOIN watch_list_element
> > > > > ON watch_list.id = watch_list_element.watch_list_id
> > > > > AND watch_list.user_id = 1
> > > > > GROUP BY watch_list_element.element_id
> > > >
> > > > Try:
> > > >
> > > > SELECT element_id as wle_element_id, COUNT(watch_list_id)
> > > > FROM watch_list JOIN watch_list_element
> > > > ON watch_list.id = watch_list_element.watch_list_id
> > > > WHERE
> > > > watch_list.user_id = 1
> > > > GROUP BY watch_list_element.element_id
> > >
> > > ERROR: Attribute unnamed_join.element_id must be GROUPed or used in
> > > an aggregate function
> > >
> >
> > I think that the wrong problem was solved here. Items in the order by
> > clause must be in the target list.
> >
> > heres what it says in the docs
> > *The ORDER BY clause specifies the sort order:
> >
> > *SELECT select_list
> > * FROM table_expression
> > * ORDER BY column1 [ASC | DESC] [, column2 [ASC | DESC] ...]
> > *column1, etc., refer to select list columns. These can be either the
output
> > name of a column (see Section 4.3.2) or the number of a column. Some
> > examples:
> >
> > Note that "column1, etc., refer to select list"
>
> I don't see how ORDER BY enters into this situation. It's not used.
> What are you saying?
> --

The same applies to group by... Sorry for the confusion.

If the column is not in the select section of the statement, it cant group
by it.
Try this.

SELECT element_id as wle_element_id, COUNT(watch_list_id)
FROM watch_list JOIN watch_list_element
ON watch_list.id = watch_list_element.watch_list_id
WHERE
watch_list.user_id = 1
GROUP BY wle_element_id

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Chad Thompson 2003-02-21 20:44:19 Re: How do I view triggers
Previous Message Dan Langille 2003-02-21 20:22:46 Re: 7.3 "group by" issue