logo

Fonction SQL LAG()

La fonction SQL LAG() est une fonction de fenêtre qui donne accès à une ligne à un décalage physique spécifié qui précède la ligne actuelle .

la molette de la souris ne défile pas correctement

Fonction LAG dans SQL Server est utilisé pour comparer les valeurs de la ligne actuelle avec les valeurs de la ligne précédente.



Syntaxe

Le Syntaxe de la fonction LAG est:

.LAG (expression_scalaire [, offset [, par défaut ]]) OVER ( [ partition_by_clause ] order_by_clause )

:



  • expression_scalaire – La valeur à renvoyer en fonction du décalage spécifié.
  • compenser - Nombre de lignes en arrière de la ligne actuelle à partir desquelles obtenir une valeur. S’il n’est pas spécifié, la valeur par défaut est 1.
  • défaut - default est la valeur à renvoyer si le décalage dépasse la portée de la partition. Si aucune valeur par défaut n'est spécifiée, NULL est renvoyé.
  • partition_by_clause : Clause facultative qui divise le jeu de résultats en partitions. La fonction LAG() est appliquée à chaque partition séparément.
  • commande_par_clause : L'ordre des lignes dans chaque partition. Ceci est obligatoire et doit être précisé.

Exemple de fonction SQL LAG()

Examinons quelques exemples de fonction SQL LAG et comprenons comment utiliser la fonction LAG dans SQL Server.

Exemple 1

  SELECT   Organisation, [Year], Revenue,   LAG   (Revenue, 1, 0)    OVER   (  PARTITION BY   Organisation   ORDER BY   [Year])   AS   PrevYearRevenue    FROM   Org    ORDER BY   Organisation, [Year];>

Sortir:

Organisation Année Revenu Revenu de l'année précédente
Actualités ABCD 2013 440000 0
Actualités ABCD 2014 480000 440000
Actualités ABCD 2015 490000 480000
Actualités ABCD 2016 500000 490000
Actualités ABCD 2017 520000 500000
Actualités ABCD 2018 525000 520000
Actualités ABCD 2019 540000 525000
Actualités ABCD 2020 550000 540000
Z Actualités 2016 720000 0
Z Actualités 2017 750000 720000
Z Actualités 2018 780000 750000
Z Actualités 2019 880000 780000
Z Actualités 2020 910000 880000

Dans l'exemple ci-dessus, nous avons 2 chaînes d'information télévisée dont les revenus de l'année en cours et de l'année précédente sont présentés sur la même ligne à l'aide de la fonction LAG(). Comme vous pouvez le voir, le tout premier enregistrement de chacune des chaînes d'informations télévisées n'a pas de revenus de l'année précédente et affiche donc la valeur par défaut de 0. Cette fonction peut être très utile pour générer des données pour les rapports BI lorsque vous souhaitez comparer les valeurs. sur des périodes consécutives, par ex. Comparaisons année sur année ou trimestre sur trimestre ou quotidiennes.



Exemple 2

  SELECT   Z.*, (Z.Revenue - z.PrevYearRevenue) as YearonYearGrowth   FROM   (SELECT Organisation, [Year], Revenue,    LAG   (Revenue, 1)     OVER   (  PARTITION BY   Organisation   ORDER BY   [Year] )   AS   PrevYearRevenue     FROM   Org) Z   ORDER BY   Organisation, [Year];>

Sortir:

Organisation Année Revenu Revenu de l'année précédente Croissance Année sur Année
Actualités ABCD 2013 440000 NUL NUL
Actualités ABCD 2014 480000 440000 40000
Actualités ABCD 2015 490000 480000 10000
Actualités ABCD 2016 500000 490000 10000
Actualités ABCD 2017 520000 500000 20000
Actualités ABCD 2018 525000 520000 5000
Actualités ABCD 2019 540000 525000 15000
Actualités ABCD 2020 550000 540000 10000
Z Actualités 2016 720000 NUL NUL
Z Actualités 2017 750000 720000 30000
Z Actualités 2018 780000 750000 30000
Z Actualités 2019 880000 780000 100000
Z Actualités 2020 910000 880000 30000

Dans l'exemple ci-dessus, nous pouvons calculer de la même manière la croissance annuelle de la chaîne d'information télévisée. De plus, une chose à remarquer dans cet exemple est que nous n'avons fourni aucun paramètre par défaut à LAG(), et par conséquent la fonction LAG() renvoie NULL au cas où il n'y aurait pas de valeurs précédentes. La fonction LAG() peut être implémentée au niveau de la base de données et les solutions de reporting BI comme Power BI et Tableau peuvent éviter d'utiliser les mesures lourdes au niveau de la couche de reporting.

Points importants concernant la fonction SQL LAG()

  • La fonction SQL LAG() est une fonction de fenêtre qui permet aux utilisateurs d'accéder aux données des lignes précédentes d'un ensemble de données.
  • Il permet aux utilisateurs de comparer les valeurs des lignes actuelles avec les valeurs des lignes précédentes, en particulier celles liées au temps ou à des colonnes spécifiques.
  • La fonction LAG() est utile pour analyser les changements au fil du temps, tels que les données boursières, les tendances quotidiennes et les modifications dans plusieurs colonnes.