Créer une Dimension Semaine avec la fonction week_date

Nous avions vu dans l'astuce du 06 décembre 2010 qu'il était possible de créer une Dimension contenant une information de Semaine en utilisant la fonctionnalité Date Roll-up et en déclarant un calendrier avec des paramètres spécifiques.

Depuis la version 3.0(21) de Data Integrator, il existe une nouvelle fonction week_date qui permet de récupérer une semaine selon la norme ISO 8601.

Cette norme ISO a défini de façon stricte une règle de numérotation, reconnue internationalement et couramment utilisée :

  1. la semaine commence le lundi ;
  2. les jours de chaque semaine sont numérotés de 1 pour le lundi, à 7 pour le dimanche ;
  3. la semaine 1 est celle qui contient le premier jeudi de l'année.

Autrement dit, le numéro de semaine retourné par la fonction week_date est le même que celui que l'on retrouve dans un semainier / agenda.

Voici des exemples d'utilisation de cette fonction et le résultat retourné :

week_date("2011/01/01") retourne "2010-W52-6"
week_date("2011/05/01") retourne "2011-W17-7"
week_date("2011-12-31") retourne "2011-W52-6"
week_date("2008-12-31") retourne "2009-W01-3"
week_date("2009-01-01") retourne "2009-W01-4"

L’utilisation combinée des fonctions week_date et substr permet la création d'une colonne de type année-semaine ou semaine qui par la suite peut être utilisée comme Dimension fondamentale dans le Modèle. Cette solution est plus efficace que l'utilisation combinée du Date Roll-up et du calendrier, car cette dernière méthode créée une Dimension dynamique de type année-semaine ou semaine, moins performante.