The name of a column in a derived table or aggregate table
Special Rules
distribution is supported only for Redshift and Aster databases.
Definition
distribution lets you specify the column from a persistent derived table (PDT) or an aggregate table on which to apply a distribution key to spread the data around a cluster. When two tables are joined by the column specified in the distribution parameter, the database can find the joined data on the same node to minimize internode I/O. Currently, distribution works only with Redshift and Aster databases. For other SQL dialects (such as MySQL and Postgres), use indexes instead.
The distribution parameter works only with tables that are persistent, such as PDTs and aggregate tables. distribution is not supported for derived tables without a persistence strategy.
In addition, the distribution parameter is not supported for derived tables that are defined using create_process or sql_create.
Generally speaking, a distribution key should be applied to the column that will be acting as a foreign key (the column you use to join your table to others). Refer to the documentation for your dialect for best practices.
Examples
Create a customer_order_facts persistent derived table with a distribution key on customer_id:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[],[],null,["# distribution\n\n\u003cbr /\u003e\n\nUsage\n-----\n\n```\nview: my_view {\n derived_table: {\n distribution: \"customer_id\"\n ...\n }\n}\n```\n\nDefinition\n----------\n\n`distribution` lets you specify the column from a [persistent derived table](/looker/docs/2512/derived-tables#persistent-derived-tables) (PDT) or an [aggregate table](/looker/docs/2512/reference/param-explore-aggregate-table) on which to apply a distribution key to spread the data around a cluster. When two tables are joined by the column specified in the `distribution` parameter, the database can find the joined data on the same node to minimize internode I/O. Currently, `distribution` works only with Redshift and Aster databases. For other SQL dialects (such as MySQL and Postgres), use [`indexes`](/looker/docs/2512/reference/param-view-indexes) instead.\n\n\u003e The `distribution` parameter works only with tables that are [persistent](/looker/docs/2512/derived-tables#adding_persistence), such as PDTs and aggregate tables. `distribution` is not supported for [derived tables](/looker/docs/2512/creating-ndts) without a persistence strategy.\n\u003e\n\u003e In addition, the `distribution` parameter is not supported for derived tables that are defined using [`create_process`](/looker/docs/2512/reference/param-view-create-process) or [`sql_create`](/looker/docs/2512/reference/param-view-sql-create).\n\nGenerally speaking, a distribution key should be applied to the column that will be acting as a foreign key (the column you use to join your table to others). Refer to the documentation for your dialect for best practices.\n\nExamples\n--------\n\nCreate a `customer_order_facts` persistent derived table with a distribution key on `customer_id`: \n\n view: customer_order_facts {\n derived_table: {\n explore_source: order {\n column: customer_id { field: order.customer_id }\n column: lifetime_orders { field: order.lifetime_orders }\n }\n datagroup_trigger: order_datagroup\n distribution: \"customer_id\"\n }\n }\n\nCreate a `customer_order_facts` derived table based on a SQL query with a distribution key on `customer_id`: \n\n view: customer_order_facts {\n derived_table: {\n sql:\n SELECT\n customer_id,\n COUNT(*) AS lifetime_orders\n FROM\n order ;;\n persist_for: \"24 hours\"\n distribution: \"customer_id\"\n }\n }"]]