w3resource

Design a Range Partition Table for Sales Data


Creating a Range-Partitioned Table

Write a PostgreSQL query to create a partitioned table that organizes sales data by year using range partitioning.

Solution:

-- Create a partitioned table for sales data based on the sale year.
CREATE TABLE Sales (
    -- Define an auto-incrementing primary key column named id.
    id SERIAL PRIMARY KEY,
    -- Define a non-nullable column sale_date of type DATE.
    sale_date DATE NOT NULL,
    -- Define a non-nullable column amount of type NUMERIC with precision 10 and scale 2.
    amount NUMERIC(10,2) NOT NULL
) PARTITION BY RANGE (sale_date);

Explanation:

  • Purpose of the Query:
    • This query sets up a partitioned table where rows are divided based on sale_date.
    • It helps manage large datasets efficiently by storing data in smaller partitions.
  • Key Components:
    • PARTITION BY RANGE (sale_date): Defines range partitioning based on the sale_date column.
  • Real-World Application:
    • Useful for organizing time-series data like sales, logs, or historical records.

Notes:

  • No data is stored in the parent table; partitions must be created separately.

For more Practice: Solve these Related Problems:

  • Write a PostgreSQL query to create a partitioned table for transaction logs using range partitioning on a timestamp column.
  • Write a PostgreSQL query to create a partitioned table for website visits using range partitioning based on visit_date and organizing data by quarter.
  • Write a PostgreSQL query to create a partitioned table for sensor readings using range partitioning on a recorded_at column with daily partitions.
  • Write a PostgreSQL query to create a partitioned table for archived logs using range partitioning on the year extracted from a date column.


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous PostgreSQL Exercise: Table partitioning Home.

Next PostgreSQL Exercise: Creating Partitions for a Range-Partitioned Table.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.