Published on

April 4, 2018

Exploration des facettes dans SQL Server 2017

SQL Server 2017 In-Database Machine Learning a révolutionné l’analyse des données en la rapprochant des données. Avec l’intégration de langages de programmation tels que R et Python dans le moteur de base de données, l’analyse des données est devenue plus pratique et efficace.

Dans un article précédent, nous avons démontré à quel point il est facile de créer un graphique à barres dans SQL Server 2017 In-Database Machine Learning en utilisant R. Dans cet article, nous allons approfondir ce graphique de base et explorer le concept de facettage dans SQL Server 2017.

Le facettage est une technique puissante en analyse de données qui nous permet de représenter des sous-ensembles de données dans une matrice de panneaux basée sur une ou plusieurs variables, ou facettes. Il offre un aperçu complet de nos données pour des partitions spécifiques, telles qu’une année.

Prenons un exemple où nous voulons analyser les performances de nos groupes de produits mois par mois au cours des quatre dernières années. Cette exigence implique plusieurs points de données, notamment l’agrégation des données (quantité), les périodes mensuelles et les partitions annuelles.

Pour répondre à cette exigence, nous pouvons utiliser la fonction de facettage dans SQL Server 2017. Le facettage nous permet de visualiser nos données dans une matrice de panneaux, ce qui facilite l’identification des tendances et des motifs.

Voici un exemple de requête qui démontre comment utiliser le facettage dans SQL Server 2017:

SELECT DISTINCT 
    SUM(il.Quantity) OVER (PARTITION BY DATEPART(YEAR, i.InvoiceDate), DATEPART(MONTH, i.InvoiceDate), sg.StockGroupName ORDER BY DATEPART(YEAR, i.InvoiceDate), DATEPART(MONTH, i.InvoiceDate)) AS Quantity,
    DATEPART(YEAR, i.InvoiceDate) AS InvoiceYear,
    DATEPART(WEEK, i.InvoiceDate) AS InvoiceWeek,
    DATEPART(MONTH, i.InvoiceDate) AS InvoiceMonthNo,
    DATENAME(MONTH, i.InvoiceDate) AS InvoiceMonth,
    sg.StockGroupName
FROM 
    Sales.Invoices i
JOIN 
    Sales.InvoiceLines il ON i.InvoiceID = il.InvoiceID
JOIN 
    Warehouse.StockItems si ON il.StockItemID = si.StockItemID
JOIN 
    Warehouse.StockItemStockGroups sis ON si.StockItemID = sis.StockItemID
JOIN 
    Warehouse.StockGroups sg ON sis.StockGroupID = sg.StockGroupID
ORDER BY 
    DATEPART(YEAR, i.InvoiceDate), DATEPART(MONTH, i.InvoiceDate);

Une fois que nous avons les données, nous pouvons utiliser des bibliothèques comme ggplot2 et scales en R pour créer le graphique de facettage. Voici un exemple de code:

quantitytschart <- ggplot(groupqty, aes(x = reorder(substr(InvoiceMonth, start = 1, stop = 3), InvoiceMonthNo), y = Quantity, group = StockGroupName, colour = StockGroupName)) +
    geom_line(size = 1) +
    geom_point(size = 3) +
    facet_wrap(~ InvoiceYear) +
    theme_dark() +
    labs(x = "Mois", y = "Quantité du groupe de stocks") +
    scale_y_continuous(labels = comma)

En utilisant la fonction facet_wrap, nous pouvons créer une matrice de panneaux basée sur la variable InvoiceYear. Cela nous permet de visualiser les agrégats de quantité en fonction des périodes mensuelles par groupe de produits disposés dans la facette de partition annuelle.

Le facettage dans SQL Server 2017 offre un outil puissant pour l’analyse et la visualisation des données. Il nous permet d’obtenir des informations sur nos données en examinant des sous-ensembles dans des partitions spécifiques. Que vous analysiez des données de vente, le comportement des clients ou tout autre ensemble de données, le facettage peut vous aider à identifier des tendances et des motifs qui ne seraient pas apparents dans un graphique traditionnel.

Alors, la prochaine fois que vous aurez besoin d’analyser vos données dans différentes partitions, envisagez d’utiliser le facettage dans SQL Server 2017. C’est une technique simple mais efficace qui peut fournir des informations précieuses sur vos données.

Bon facettage!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.