Database
 sql >> Base de données >  >> RDS >> Database

Regroupement avec un énoncé de cas

Il est important de savoir par quelles colonnes vous souhaitez regrouper et comment vous souhaitez les regrouper. Vous devrez le savoir pour configurer le CASE STATEMENT nous allons écrire sous forme de colonne dans notre instruction select. Dans notre cas, dans un groupe d'e-mails qui accèdent à notre site, nous voulons savoir combien de clics chaque fournisseur d'e-mail comptabilise depuis le début du mois d'août. Nous aimerions également comparer un fournisseur de services de messagerie individuel avec les autres. Pour cet exemple, nous allons utiliser Gmail comme fournisseur de services.

Dans notre SELECT déclaration, nous aurons besoin de la DATE , le PROVIDER et la SUM des CLICKS à notre site. Nous pouvons les obtenir à partir des TEST E MAILS table dans notre source de données.

La DATE colonne est assez simple :

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

Et puisque nous cherchons le SUM des CLICKS , nous devrons lancer un SUM fonction sur les CLICKS colonne.

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

Cela nous amène à notre CASE STATEMENT . Nous savons, d'après la documentation PostgreSQL, qu'une CASE STATEMENT, ou une instruction conditionnelle, doit être organisée de la manière suivante :

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

Notre première condition, et dans ce cas uniquement, est que nous souhaitons que toutes les adresses e-mail fournies par Gmail soient séparées de tout autre fournisseur de messagerie. Donc le seul WHEN est :

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

Et la déclaration else serait "Autre" pour tous les autres fournisseurs d'adresses e-mail. Le tableau résultant de ce CASE STATEMENT avec les e-mails correspondants seuls. Ressemblerait à ceci :

Lorsque vous assemblez ces trois colonnes pour un SELECT STATEMENT et ajoutez le reste des éléments nécessaires pour créer une requête SQL, tout prend forme ci-dessous.

Puis après avoir ajouté un PIVOT DATA pas dans le pipeline de données, nous obtiendrons un tableau correctement organisé dans le format approprié pour configurer un graphique linéaire montrant comment les clics sont comparés au fil du temps.

En utilisant Chartio, nous pouvons faire tout ce qui précède sans écrire de code SQL, mais en tirant parti des fonctionnalités de l'explorateur de données et du pipeline de données. Après avoir construit notre requête sous-jacente pour extraire toutes les colonnes, nous aurons besoin de SUM OF CLICKS , DATE et EMAIL ADDRESS nous pouvons utiliser le Data Pipeline pour manipuler ces données post-SQL. Commençons par créer la requête.

Faites glisser la "colonne de clics" vers la zone de mesures et agrégez-la par TOTAL SUM de la colonne Clics, puis renommez-la "CLICS".

Ensuite, faites glisser « Date de création » et « Fournisseur » dans la zone des dimensions et renommez-les « Date » et « Fournisseur de messagerie ». Après cela, en utilisant la colonne « Date de création », vous pouvez définir l'intervalle de dates (ou créer votre WHERE clause) pour être tout après le 2017-08-01. Cela construira efficacement tout ce dont nous avons besoin dans une requête sous-jacente pour créer le CASE STATEMENT nous l'avons fait ci-dessus, dans le pipeline de données de Chartio.

Ajout d'un CASE STATEMENT l'étape du pipeline nous permet de définir les conditions pour le WHEN et le ELSE comme nous le faisions auparavant, sans avoir à saisir toute la syntaxe SQL.

Ensuite, après avoir masqué la colonne "Provider" d'origine et utilisé un REORDER COLUMNS étape et une PIVOT DATA étape, nous obtiendrons le même arrangement de table que nous avons obtenu en mode SQL et pouvons présenter la même table que nous avons fait en mode SQL.

Bien que cela puisse prendre quelques clics et étapes de plus qu'en mode SQL, le graphique linéaire résultant réalisé en mode interactif ne nécessite aucune connaissance de la syntaxe SQL. Au lieu de cela, tout ce qu'il faut, c'est une compréhension de base des principes impliqués. Ceci est un autre exemple de la façon dont Chartio aide à mettre la puissance des données entre les mains de tous, indépendamment des connaissances SQL.