Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Sebagai aturan umum di SQL — dan, secara luas, Looker — Anda tidak dapat mengelompokkan kueri berdasarkan
hasil fungsi agregat
(diwakili di Looker sebagai ukuran).
Anda hanya dapat mengelompokkan berdasarkan kolom yang tidak digabungkan (ditampilkan di Looker sebagai dimensi).
Jika mencoba menggabungkan ukuran di Looker, Anda akan melihat error berikut:
Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.
Bagaimana jika Anda memerlukan cara untuk mengubah ukuran (COUNT, SUM, AVG, MAX, dll.) menjadi dimensi, sehingga Anda dapat mengelompokkan berdasarkan ukuran tersebut untuk menggabungkannya (seperti SUM dari COUNT atau AVG dari SUM), memfilter berdasarkan ukuran tersebut (dalam klausa WHERE, bukan klausa HAVING), atau membuat pivot berdasarkan ukuran tersebut di Jelajah?
Menggunakan tabel turunan untuk membuat dimensi pengukuran
Secara internal di Looker, solusi ini disebut menyediakan dimensi ukuran. Hal ini
karena Anda menentukan ulang pengukuran sebagai dimensi. Hal ini
dilakukan dengan membuat
tabel turunan
yang menyertakan ukuran yang ingin Anda dimensikan dalam definisi
SQL-nya.
Prosesnya
Contoh berikut didasarkan pada contoh set data e-commerce. Tujuan untuk contoh ini adalah
membuat ukuran type: average yang didasarkan pada ukuran Total Pendapatantype: sum yang ada.
Langkah-langkah berikut menguraikan cara membuat tabel turunan berbasis SQL. Anda dapat memilih untuk membuat tabel turunan berbasis LookML, yang juga dikenal sebagai tabel turunan native (NDT), sebagai alternatif untuk SQL.
Mulai dengan menyiapkan Kueri eksplorasi.
Pilih kolom yang sesuai, termasuk ukuran yang ingin Anda dimensikan.
Dalam contoh kasus penggunaan, tabel Data Jelajah menampilkan Total Pendapatan yang dikelompokkan menurut Status Pengguna dan ID Pengguna:
Pilih Buka di SQL Runner
dari tab SQL di tabel Data untuk membuka kueri di SQL Runner:
Setelah menjalankan kueri di SQL Runner (dengan mengklik tombol Run) dan mengonfirmasi hasilnya,
pilih opsi Add to Project dari menu roda gigi SQL Runner untuk membuka pop-up Add to Project. Pada tahap ini, Anda perlu menghapus klausa batas baris dalam SQL tabel turunan untuk memastikan bahwa semua hasil yang diinginkan disertakan dalam kueri.
Anda juga dapat memilih Get Derived Table LookML dari menu untuk menyalin dan menempelkan LookML yang dihasilkan ke dalam project Anda secara manual.
Dari pop-up Add to Project, pilih nama project dari drop-down Project,
masukkan nama untuk file tampilan tabel turunan, lalu pilih Add.
Setelah tabel turunan berada dalam file tampilan, Anda dapat membuat ukuran yang menggabungkan ukuran yang didimensialisasikan. Misalnya, kini Anda dapat membuat
ukuran type: average untuk dimensi total pendapatan baru, order_items_total_revenue:
Periksa kembali apakah
kunci utama
ditentukan dalam tabel turunan.
Gabungkan tampilan baru ke dalam Jelajah asli (atau buat Jelajah baru) agar dapat membuat kueri dan konten dengan kolom baru.
Kesimpulan
Membuat dimensi ukuran dengan tabel turunan Looker akan membuka kemampuan baru dan memberikan kemampuan untuk membuat insight lebih lanjut dengan data Anda. Dengan kemampuan untuk mengelompokkan berdasarkan ukuran yang diukur dimensi, memfilter berdasarkan ukuran tersebut dalam klausa WHERE (bukan HAVING), melakukan pivot berdasarkan ukuran tersebut, dan membuat dimensi lain berdasarkan ukuran tersebut, Anda dapat mengarahkan kueri dan konten Jelajah ke dimensi berikutnya.
Buka halaman dokumentasi Tabel turunan untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan tabel turunan, beserta pertimbangan dan tips pengoptimalan performa.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-30 UTC."],[],[],null,["# How to dimensionalize a measure in Looker\n\nAs a general rule in SQL --- and, by extension, Looker --- you cannot group a query by\nthe results of an aggregate function\n(represented in Looker as [measures](/looker/docs/reference/param-field-measure)).\nYou can only group by unaggregated fields (represented in Looker as [dimensions](/looker/docs/reference/param-field-dimension)).\nIf you try to aggregate a measure in Looker, you will see the following\n[error](/looker/docs/best-practices/error-measures-with-looker-aggregations-reference-other-aggregations): \n\n```\nMeasures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.\n```\n\n\nWhat if you need a way to change a measure (COUNT, SUM, AVG, MAX, etc.) into\na dimension, so that you can group by it to aggregate it (like a SUM of a COUNT or an AVG of a SUM),\n[filter](/looker/docs/filtering-and-limiting) by it (in the WHERE clause rather than a\n[HAVING](/looker/docs/filtering-and-limiting#filtering_measures:_calculates_first,_then_restricts_the_results) clause), or\n[pivot](/looker/docs/creating-and-editing-explores#pivoting_dimensions) on it in an Explore?\n\nUsing derived tables to dimensionalize a measure\n------------------------------------------------\n\n\nInternally at Looker the solution is called *dimensionalizing a measure* . This\nis because you redefine a measure as a*dimension* . This\nis accomplished by creating a\n[derived table](/looker/docs/derived-tables)\nthat includes the measure you want to dimensionalize in its SQL\ndefinition.\n\n### The process\n\n\nThe following example is based on a sample e-commerce dataset. The goal for this example is\nto create an [`type: average`](/looker/docs/reference/param-measure-types#average) measure that is based on an existing **Total Revenue** [`type: sum`](/looker/docs/reference/param-measure-types#sum) measure.\n\u003e *The following steps outline how to generate a SQL-based derived table. You can elect to create a LookML-based derived table, also known as a [native derived table (NDT)](/looker/docs/creating-ndts), as an alternative to SQL.*\n\n1. Start by setting up an [Explore query](/looker/docs/creating-and-editing-explores). Choose the appropriate fields, including the measure you want to dimensionalize.\n\n \u003cbr /\u003e\n\n In the example use case, the Explore **Data** table features **Total Revenue** grouped by **Users State** and **Users ID** :\n\n \u003cbr /\u003e\n\n2. Choose **Open in SQL Runner** from the **SQL** tab in the **Data** table to open the query in [SQL Runner](/looker/docs/sql-runner-basics):\n\n \u003cbr /\u003e\n\n3. After running the query in SQL Runner (by clicking the **Run** button) and confirming the results, choose the [**Add to Project**](/looker/docs/sql-runner-create-derived-tables#adding_to_a_lookml_project) option from the SQL Runner gear menu to open the **Add to Project** pop-up. *At this point you need to remove any row limit clause in the derived\n table SQL to ensure that all desired results are included in the query.*\n\n \u003cbr /\u003e\n\n \u003e *You can also choose [**Get Derived Table LookML**](/looker/docs/sql-runner-create-derived-tables#getting_the_lookml_for_a_derived_table) from the menu to copy and paste the generated LookML into your project manually.*\n4. From the **Add to Project** pop-up, select a project name from the **Project** drop-down, enter a name for your derived table view file, and select **Add**.\n5. Now that the derived table is in a view file, you can create a measure that aggregates the dimensionalized measure. For example, you can now create a `type: average` measure for the new total revenue dimension, `order_items_total_revenue`: \n\n ```\n dimension: order_items_total_revenue {\n type: number\n sql: ${TABLE}.order_items.total_revenue ;;\n value_format_name: usd\n }\n\n measure: average_revenue {\n type: average\n sql: ${order_items_total_revenue} ;;\n value_format_name: usd\n }\n \n ```\n6. Double-check that a [primary key](/looker/docs/reference/param-field-primary-key) is defined in the derived table.\n7. [Join](/looker/docs/reference/param-explore-join) the new view into the original Explore (or create a new Explore) to be able to create queries and content with the new fields.\n\nConclusion\n----------\n\n\nDimensionalizing measures with Looker derived tables unlocks new capabilities\nand provides the power to make further insights with your data. With the ability\nto **group by**a dimensionalized measure, filter by it\nin a WHERE clause (instead of HAVING), pivot on it, and create other dimensions\nbased on it, you can take your Explore queries, and content, to the next dimension.\n\n\nVisit the [Derived tables](/looker/docs/derived-tables) documentation page for more information about creating and using derived tables, along with considerations and performance optimization tips."]]