What is an aggregate table in data warehousing?

In data warehousing, an aggregate table is a table that contains pre-calculated summaries of data from a base table. The primary purpose of the aggregate table is to accelerate query response times. Instead of performing complex calculations and aggregations, queries can directly access the pre-computed results from the aggregate table. It eliminates the need to scan large volumes of detailed data and enables faster retrieval.

How to create an aggregate table

We can use a database management system (DBMS) such as SQL Server or Oracle to create our aggregate table. The DBMS will create the table and populate it with the pre-calculated summaries.

The following is an example of an SQL query that can be used to create and populate the aggregate table total_sales_by_product.

CREATE TABLE total_sales_by_product (
product_id INT,
total_sales DECIMAL(10,2)
);
INSERT INTO total_sales_by_product (product_id, total_sales)
SELECT product_id, SUM(sales)
FROM sales;

Explanation

  • The CREATE TABLE statement is used to create a new table named total_sales_by_product. It has two columns: product_id and total_sales.

  • The INSERT INTO statement is used to insert data into a table. The columns being filled are product_id and total_sales.

Fact base table

The fact base table sales from which the aggregate table total_sales_by_product is created is as follows:

CREATE TABLE sales (
product_id INT,
customer_id INT,
quantity INT,
price DECIMAL(10,2),
sales DECIMAL(10,2)
);

Explanation

The CREATE TABLE statement is used to create a new table named sales. It has five columns: product_id, customer_id, quantity, price and sales.

How to query an aggregate table

Once an aggregate table has been created, it can be queried using SQL queries. The following is an example of an SQL query that can be used to query the total_sales_by_product table:

SELECT product_id, total_sales
FROM total_sales_by_product
WHERE product_id = 1;

Explanation

The query selects the product_id and total_sales columns from the table total_sales_by_product where the product_id is equal to 1.

Types

Different types of aggregate tables can be used in data warehousing including :

  • Summarizing aggregates: These aggregate tables store summarized data by grouping records based on one or more dimensions and calculating aggregated values such as sums, averages, counts, etc. 

  • Roll-up aggregates: Roll-up aggregates provide hierarchical data summaries by collapsing multiple granularity levels into higher-level categories. For example, a roll-up aggregate may summarize monthly sales into quarterly or yearly totals.

  • Partitioning aggregates: These aggregates divide the data into partitions based on specific criteria, such as time periods or geographical regions.

  • Drill-down aggregates: Drill-down aggregates provide the ability to view detailed data by expanding higher-level summaries. They allow users to drill down from aggregated results to more granular data to analyze specific details.

Why do we use aggregate tables?

There are several benefits to using aggregate tables in data warehousing, including:

  • Improved query performance

  • Reduced data storage requirements

  • Simplified data management

  • Reduced system load

  • Enhanced scalability

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved