Re: Syntax error needs explanation
От | David G. Johnston |
---|---|
Тема | Re: Syntax error needs explanation |
Дата | |
Msg-id | CAKFQuwZWnGB2weH87+z4zn8mTg83rso2Cy4P2=fqqcAM9p5iWg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Syntax error needs explanation (Rich Shepard <rshepard@appl-ecosys.com>) |
Ответы |
Re: Syntax error needs explanation [RESOLVED]
|
Список | pgsql-general |
On Mon, Jul 14, 2025 at 12:59 PM Rich Shepard <rshepard@appl-ecosys.com> wrote:
The current version of the script:
select c.company_nbr, c.company_name, c.industry
from companies as c
where exists (
select e.company_nbr
from enforcement as e
)
group by c.industry
order by c.industry;
And psql tells me that c.company_nbr must be in the group by clause.
However, when I do that the output is a list of company numbers and names in
each industry.
My web searches on using the exists operator haven't provided the knowlege
for me to use it properly.
Yeah, you need both to read up on aggregate queries and correlated subqueries which is typically how one makes uses of exists (it's called a semi-join in this formulation)
Not tested, but:
select c.industry, count(*)
from companies as c
where exists (
select from enforcement as e
where e.company_nbr = c.company_nbr
)
group by c.industry;
David J.
В списке pgsql-general по дате отправления: