sql >> Databáze >  >> RDS >> Database

Seskupování s případovým prohlášením

Nejprve je důležité vědět, podle kterých sloupců chcete seskupit a jak je chcete seskupit. Budete to potřebovat vědět, abyste mohli nastavit CASE STATEMENT zapíšeme jako sloupec v našem vybraném příkazu. V našem případě ve skupině e-mailů, které přistupují na naše stránky, chceme vědět, kolik kliknutí každý poskytovatel e-mailu započítává od začátku srpna. Rádi bychom také porovnali jednotlivého poskytovatele e-mailových služeb s ostatními. V tomto příkladu budeme jako poskytovatele služeb používat Gmail.

V našem SELECT budeme potřebovat DATE , PROVIDER a SUM z CLICKS na naše stránky. Můžeme je získat z TEST E MAILS tabulky v našem zdroji dat.

DATE sloupec je docela jednoduchý:

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

A protože hledáme SUM z CLICKS , budeme muset odeslat SUM funkce přes CLICKS sloupec.

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

Tím se dostáváme k našemu CASE STATEMENT . Z dokumentace PostgreSQL víme, že CASE STATEMENT nebo podmíněný příkaz je třeba uspořádat následujícím způsobem:

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

Naší první a v tomto případě jedinou podmínkou je, že chceme, aby byly všechny e-mailové adresy, které poskytuje Gmail, odděleny od všech ostatních poskytovatelů e-mailu. Takže jediné WHEN je:

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

A prohlášení else by bylo „Jiné“ pro každého jiného poskytovatele e-mailových adres. Výsledná tabulka tohoto CASE STATEMENT pouze s odpovídajícími e-maily. Bude vypadat takto:

Když poskládáte všechny tři tyto sloupce do jednoho SELECT STATEMENT a vhoďte zbytek nezbytných částí k sestavení SQL dotazu, vše nabere tvar níže.

Poté po přidání PIVOT DATA vstoupíte do datového kanálu, získáme tabulku správně uspořádanou ve správném formátu pro vytvoření spojnicového grafu, který ukazuje, jak jsou kliknutí porovnávána v čase.

Při používání Chartia můžeme dělat vše výše uvedené bez psaní SQL, ale s využitím funkcí Průzkumník dat a Data Pipeline. Po vytvoření našeho základního dotazu, který načte všechny sloupce, budeme potřebovat SUM OF CLICKS , DATE a EMAIL ADDRESS můžeme použít Data Pipeline k manipulaci s těmito daty po SQL. Nejprve sestavíme dotaz.

Přetáhněte „Sloupec kliknutí“ do pole opatření a agregujte jej podle TOTAL SUM kliknutí na sloupec a poté jej přejmenujte na „KLIKNUTÍ“.

Poté přetáhněte „Datum vytvoření“ a „Poskytovatel“ do pole dimenzí a přejmenujte je na „Datum“ a „Poskytovatel e-mailu“. Poté můžete pomocí sloupce „Datum vytvoření“ nastavit rozsah data (nebo vytvořit svůj WHERE doložka), aby bylo vše po 1. 8. 2017. To efektivně vytvoří vše, co potřebujeme v základním dotazu k vytvoření CASE STATEMENT provedli jsme výše v Data Pipeline společnosti Chartio.

Přidání CASE STATEMENT pipeline step nám umožňuje nastavit podmínky pro WHEN a ELSE stejně jako předtím, aniž bychom museli zadávat celou syntaxi SQL.

Poté po skrytí původního sloupce „Poskytovatel“ a použití REORDER COLUMNS krok a PIVOT DATA krok získáme stejné uspořádání tabulek, jaké jsme získali v režimu SQL, a můžeme prezentovat stejnou tabulku, jako jsme vytvořili v režimu SQL.

I když to může trvat o několik kliknutí a kroků více než v režimu SQL, výsledný spojnicový graf vytvořený v interaktivním režimu nevyžaduje žádnou znalost syntaxe SQL. Místo toho je zapotřebí pouze základní pochopení příslušných principů. Toto je další příklad toho, jak Chartio pomáhá dát sílu dat do rukou každého, bez ohledu na znalosti SQL.


  1. PostgreSQL:Upozornění:Kódová stránka konzoly (437) se liší od kódové stránky Windows (1252)

  2. Ukládání souborů do SQL databáze pomocí FILESTREAM – část 2

  3. Proč nemohu v dalším výrazu SELECT použít aliasy sloupců?

  4. pghoard Alternativy - PostgreSQL Backup Management s ClusterControl