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 по дате отправления: