Solved [Re: GROUP BY or alternative means to group]
От | Alexander Reichstadt |
---|---|
Тема | Solved [Re: GROUP BY or alternative means to group] |
Дата | |
Msg-id | 9BD44C1A-E50E-4DDE-9C94-2ED1D606C487@mac.com обсуждение исходный текст |
Ответ на | GROUP BY or alternative means to group (Alexander Reichstadt <lxr@mac.com>) |
Список | pgsql-general |
So the mysql way for group by seems to be non-standard.
What works for postgres is the DISTINCT ON (fieldname) approach.
Thanks
Am 12.03.2012 um 20:35 schrieb Alexander Reichstadt:
Hi,the following statement worked on mysql but gives me an error on postgres:column "addresses.address1" must appear in the GROUP BY clause or be used in an aggregate functionI guess I am doing something wrong. I read the web answers, but none of them seem to meet my needs:SELECT companies.id,companies.name,companies.organizationkind,addresses.address1,addresses.address2,addresses.city,addresses.zip FROM companies JOIN addresses_reference ON companies.id=addresses_reference.refid_companies LEFT JOIN addresses ON addresses_reference.refid_addresses=addresses.id GROUP BY companies.id;What I did now was create a view based on above statement but without grouping. This returns a list with non-distinct values for all companies that have more than one address, which is correct. But in some cases I only need one address and the problem is that I cannot use distinct.I wanted to have some way to display a companies list that only gives me the first stored addresses related, and disregard any further addresses.Is there any way to do this?ThanksAlex
В списке pgsql-general по дате отправления: