Come regola generale in SQL, e di conseguenza in Looker, non puoi raggruppare una query i risultati di una funzione aggregata (rappresentate in Looker come misure). Puoi raggruppare solo per campi non aggregati (rappresentati in Looker come dimensioni). Se provi ad aggregare una misura in Looker, viene visualizzato il seguente errore:
Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.
E se avessi bisogno di un modo per modificare una misura (CONTA.SOMMA, MEDIA, MAX e così via) in una dimensione, in modo da poterla raggruppare in base alla dimensione per aggregarla (ad esempio, la SOMMA di un CONTA.NUMERI o la MEDIA di una SOMMA), filter in base al criterio (nella clausola WHERE anziché HAVING) o pivot su di esso in un'esplorazione?
Utilizzare le tabelle derivate per creare una dimensione di una misura
Internamente in Looker la soluzione è chiamata dimensionalizzazione di una misura. Questo accade perché ridefinisci una misura come dimensione. Questo si ottiene creando un tabella derivata che include la misura che vuoi dimensionare nel suo codice SQL definizione di Kubernetes.
La procedura
L'esempio seguente si basa su un set di dati campione di e-commerce. Lo scopo di questo esempio è
creare una metrica type: average
basata su una metrica Entrate totali type: sum
esistente.
I passaggi seguenti spiegano come generare una tabella derivata basata su SQL. In alternativa a SQL, puoi scegliere di creare una tabella derivata basata su LookML, nota anche come tabella derivata nativa (NDT).
- Per iniziare, configura una query di esplorazione. Scegli i campi appropriati, inclusa la misura che vuoi dimensionare. Nel caso d'uso di esempio, la tabella Dati dell'esplorazione mostra le Entrate totali raggruppate per Stato utente e ID utente:
- Scegli Apri in SQL Runner dalla scheda SQL della tabella Dati per aprire la query in SQL Runner:
-
Dopo aver eseguito la query in SQL Runner (facendo clic sul pulsante Esegui) e aver confermato i risultati,
scegli l'opzione Aggiungi al progetto dal menu a forma di ingranaggio di SQL Runner per aprire il popup Aggiungi al progetto. A questo punto devi rimuovere qualsiasi clausola di limite di righe nella
per assicurarti che tutti i risultati desiderati siano inclusi nella query.
Puoi anche scegliere Ottieni LookML della tabella derivata dal menu per copiare e incollare manualmente il LookML generato nel progetto.
- Nel popup Aggiungi al progetto, seleziona un nome di progetto dall'elenco a discesa Progetto, inserisci un nome per il file della visualizzazione tabella derivata e seleziona Aggiungi.
-
Ora che la tabella derivata si trova in un file di visualizzazione, puoi creare una misura
che aggrega la misura dimensionale. Ad esempio, ora puoi creare
una misura
type: average
per la nuova dimensione delle entrate totali,order_items_total_revenue
:dimension: order_items_total_revenue { type: number sql: ${TABLE}.order_items.total_revenue ;; value_format_name: usd } measure: average_revenue { type: average sql: ${order_items_total_revenue} ;; value_format_name: usd }
- Verifica che chiave primaria è definito nella tabella derivata.
- Unisci la nuova visualizzazione all'esplorazione originale (o crea una nuova esplorazione) per poter creare query e contenuti con i nuovi campi.
Conclusione
La dimensionamento delle misure con le tabelle derivate da Looker sblocca nuove funzionalità e ti consente di ottenere ulteriori insight con i tuoi dati. Grazie alla possibilità di raggruppare per una misura dimensionalizzata, filtrarla in una clausola WHERE (anziché HAVING), eseguire un pivot in base a questa e creare altre dimensioni in base a questa, puoi passare le query ed esplorare i contenuti alla dimensione successiva.
Per ulteriori informazioni sulla creazione e sull'utilizzo delle tabelle derivate, nonché su considerazioni e suggerimenti per l'ottimizzazione del rendimento, consulta la pagina della documentazione Tabelle derivate.