Preamble
PostgreSQL UNION statement is used to combine the resulting sets of 2 or more SELECT operators. It removes repetitive lines between different SELECT operators.
Each SELECT statement in a UNION operator must have the same number of fields in the result sets with the same data types.
The syntax for a UNION statement in PostgreSQL
SELECT expression1_id, expression2_id,... expression_n_id
FROM tabs
[WHERE conds]
UNION
SELECT expression1_id, expression2_id,... expression_n_id
FROM tabs
[WHERE conds];
Parameters and arguments of the statement
- expression1_id, expression2_id,…_n_id – The column or the calculation you want to get.
- tabs – The tables from which you want to get the records. The FROM operator must specify at least one table.
- WHERE conds – Optional. The conditions to be met for the records to be selected.
Note:
- Both SELECT statements must have the same number of expressions.
- Since the UNION operator by default removes all repetitive strings from the result set, providing a UNION DISTINCT modifier does not affect the results.
- The column names from the first SELECT operator in UNION are used as column names for the result set.
Example with the return of a single field
Below is an example of PostgreSQL UNION operator, which returns one field from several SELECT operators (and both fields have the same data type):
SELECT category_id
FROM products
UNION
SELECT category_id
FROM categories;
In this example of the PostgreSQL UNION operator, if a category_id appears in both the products table and the categories table, it will appear in your resulting set once. The PostgreSQL UNION statement removes duplicates. If you do not want to remove duplicates, try using PostgreSQL UNION ALL operator.
Example using the ORDER BY statement
PostgreSQL UNION operator can use ORDER BY operator to organize query results.
For example:
SELECT product_id, product_name
FROM products
WHERE product_id >= 24
UNION
SELECT category_id, category_name
FROM categories
WHERE category_name <> 'Hardware'
ORDER BY 2;
In this PostgreSQL operator UNION, since column names in two SELECT operators are different, it is more advantageous to refer to columns in ORDER BY operator by their position in the resulting set. In this example, we have sorted the results by product_name / category_name in ascending order as ORDER BY 2.
The product_name / category_name fields are at position #2 in the resulting set. is used to combine the resulting sets of 2 or more SELECT operators. It removes repetitive lines between different SELECT operators.
Each SELECT statement in a UNION operator must have the same number of fields in the result sets with the same data types.
PostgreSQL Tutorial – UNION and UNION ALL
About Enteros
Enteros offers a patented database performance management SaaS platform. It proactively identifies root causes of complex business-impacting database scalability and performance issues across a growing number of clouds, RDBMS, NoSQL, and machine learning database platforms.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
Harnessing Generative AI for Smarter Database Performance Management in the BFSI Sector—Powered by Enteros
- 18 September 2025
- Database Performance Management
Introduction The Banking, Financial Services, and Insurance (BFSI) sector is the backbone of the global economy. With millions of transactions occurring every second, the industry relies heavily on the ability to store, process, and analyze massive volumes of data. From real-time fraud detection and credit risk assessments to claims processing and regulatory compliance, databases play … Continue reading “Harnessing Generative AI for Smarter Database Performance Management in the BFSI Sector—Powered by Enteros”
Driving RevOps Efficiency in the Healthcare Sector with Enteros: AIops-Powered Database Performance Optimization
Introduction The healthcare sector is under immense pressure to modernize operations while delivering high-quality, cost-effective care. Hospitals, research institutions, and pharmaceutical companies are generating massive amounts of data from electronic health records (EHRs), diagnostic imaging, genomic sequencing, clinical trials, IoT-enabled medical devices, and insurance claim systems. Managing and optimizing these vast databases is critical not … Continue reading “Driving RevOps Efficiency in the Healthcare Sector with Enteros: AIops-Powered Database Performance Optimization”
Black Friday e-commerce crashes from DB latency
Introduction Black Friday is the biggest day of the year for e-commerce. Shoppers flood online stores, hunting for deals, and businesses prepare for record-breaking traffic. But too often, excitement turns into frustration as websites freeze, checkouts fail, and carts vanish. Behind the scenes, it’s not just the servers struggling—it’s the databases. When databases can’t keep … Continue reading “Black Friday e-commerce crashes from DB latency”
Space research simulations collapsing from DB overload
Introduction Space research depends on simulations that push technology to its limits. From modeling rocket launches to predicting orbital dynamics, these simulations generate massive streams of data. But increasingly, the bottleneck isn’t computing power—it’s the databases that store and process this information. When databases fail, simulations stall, research timelines slip, and millions in funding are … Continue reading “Space research simulations collapsing from DB overload”