I'm using PostgreSQL 11.12.
I have this query:
select first_name, length(first_name)
from db_employee
where length(first_name) =
(select max(length(first_name)) from db_employee)
order by 1
limit 1
union
select first_name, length(first_name)
from db_employee
where length(first_name) =
(select min(length(first_name)) from db_employee)
order by 1
limit 1
and when I run it I get this error:
syntax error at or near "union"
If I use CTE it works:
with cte1 as
(select first_name, length(first_name)
from db_employee
where length(first_name) =
(select max(length(first_name)) from db_employee)
order by 1
limit 1),
cte2 as
(select first_name, length(first_name)
from db_employee
where length(first_name) =
(select min(length(first_name)) from db_employee)
order by 1
limit 1)
select * from cte1
union
select * from cte2;
Why does the first query result in syntax error? Is it possible to get it to work without using CTE?