Database
 sql >> Database >  >> RDS >> Database

Raggruppamento con una dichiarazione del caso

Sapere in quale colonna si desidera raggruppare e come raggrupparle, in primo luogo, è importante. Dovrai saperlo per impostare il CASE STATEMENT scriveremo come una colonna in una nostra istruzione select. Nel nostro caso, in un gruppo di email che accedono al nostro sito, vogliamo sapere quanti clic ha contabilizzato ciascun provider di posta elettronica dall'inizio di agosto. Vorremmo anche confrontare un singolo provider di servizi di posta elettronica con il resto. Per questo esempio, utilizzeremo Gmail come nostro fornitore di servizi.

Nel nostro SELECT dichiarazione, avremo bisogno del DATE , il PROVIDER e il SUM dei CLICKS al nostro sito. Possiamo ottenerli da TEST E MAILS tabella nella nostra origine dati.

Il DATE la colonna è piuttosto semplice:

"Test E Mails"."Created_Date" AS "DATE

E poiché stiamo cercando il SUM dei CLICKS , dovremo trasmettere un SUM funzione sopra il CLICKS colonna.

SUM("Test E Mails"."Clicks") AS "CLICKS"

Questo ci porta al nostro CASE STATEMENT . Sappiamo dalla documentazione di PostgreSQL che una CASE STATEMENT, o un'istruzione condizionale, deve essere organizzata nel modo seguente:

CASE
  WHEN condition THEN result
  [WHEN ...]
  [ELSE result]
  END

La nostra prima e, in questo caso unica, condizione è che vogliamo che tutti gli indirizzi email forniti da Gmail siano separati da ogni altro provider di posta elettronica. Quindi l'unico WHEN è:

WHEN "Test E Mails"."Provider" = 'Gmail' THEN 'Gmail'

E l'istruzione else sarebbe "Altro" per ogni altro provider di indirizzi e-mail. La tabella risultante di questo CASE STATEMENT solo con le email corrispondenti. Sarebbe simile a questo:

Quando unisci tutte e tre quelle colonne per un SELECT STATEMENT e aggiungi il resto dei pezzi necessari per costruire una query SQL, tutto prende forma di seguito.

Quindi dopo aver aggiunto un PIVOT DATA entrare nella pipeline di dati, otterremo una tabella correttamente organizzata nel formato corretto per impostare un grafico a linee che mostra come i clic vengono confrontati nel tempo.

Utilizzando Chartio, possiamo fare tutto quanto sopra senza scrivere alcun SQL ma sfruttando le funzionalità di Data Explorer e Data Pipeline. Dopo aver creato la nostra query sottostante per inserire tutte le colonne, avremo bisogno di SUM OF CLICKS , DATE e EMAIL ADDRESS possiamo usare la pipeline di dati per manipolare questi dati post-SQL. Per prima cosa, costruiamo la query.

Trascina la "Colonna dei clic" nella casella delle misure e aggregala per TOTAL SUM della colonna Clic, quindi rinominala "CLIC".

Quindi trascina "Data di creazione" e "Provider" nella casella delle dimensioni e rinominali "Data" e "Provider e-mail". Successivamente, utilizzando la colonna "Data di creazione" puoi impostare l'intervallo di date (o creare il tuo WHERE clausola) essere tutto dopo il 01-08-2017. Questo creerà efficacemente tutto ciò di cui abbiamo bisogno in una query sottostante per creare il CASE STATEMENT abbiamo fatto sopra, nella pipeline di dati di Chartio.

Aggiunta di un CASE STATEMENT il passaggio della pipeline ci consente di impostare le condizioni per il WHEN e il ELSE proprio come abbiamo fatto prima, senza dover digitare l'intera sintassi SQL.

Quindi dopo aver nascosto la colonna "Fornitore" originale e aver utilizzato un REORDER COLUMNS passo e un PIVOT DATA passo otterremo la stessa disposizione delle tabelle che abbiamo ottenuto in modalità SQL e possiamo presentare la stessa tabella che abbiamo fatto in modalità SQL.

Sebbene possano essere necessari alcuni clic e passaggi in più rispetto alla modalità SQL, il grafico a linee risultante eseguito in modalità interattiva non richiede la conoscenza della sintassi SQL. Invece tutto ciò che serve è una comprensione di base dei principi coinvolti. Questo è un altro esempio di come Chartio stia aiutando a mettere il potere dei dati nelle mani di tutti, indipendentemente dalla conoscenza di SQL.