Utilisation
view: view_name {
dimension_group: field_name { ... }
}
|
Hiérarchie
dimension_group |
Acceptation
Identifiant Looker (qui servira de première partie du nom de chaque dimension créée par le groupe de dimensions)
Règles spéciales
|
Définition
Le paramètre dimension_group permet de créer un ensemble de dimensions temporelles ou de durée en une seule fois. Vous définissez le groupe de dimensions, qui crée un ensemble de dimensions individuelles pour différents intervalles ou périodes. Par exemple, vous pouvez spécifier un groupe de dimensions type: time basé sur une colonne de code temporel. Le groupe de dimensions créera les dimensions correspondantes pour exprimer les données en fonction de l'heure, de la date, de la semaine, de l'heure, du trimestre et de l'année.
La forme et la fonction du groupe de dimensions varient en fonction de la valeur type du groupe de dimensions :
Groupes de dimensions de type "Durée"
type: duration est utilisé conjointement avec dimension_group pour calculer un ensemble de dimensions de durée basées sur des intervalles.
La forme d'un groupe de dimensions de type: duration est la suivante :
dimension_group: dimension_group_name {
type: duration
sql_start: SQL expression ;; # often this is a single database column
sql_end: SQL expression ;; # often this is a single database column
intervals: [interval, interval, …] # see following explanation for valid intervals
}
Pour les groupes de dimensions de type: duration :
Les paramètres
sql_startetsql_endfournissent des expressions SQL définissant l'heure de début et l'heure de fin de la durée. Pour en savoir plus, consultez la section Définir le début et la fin d'une durée sur cette page.Le paramètre
intervalsspécifie une ou plusieurs unités d'intervalle à utiliser pour mesurer la différence de temps. Les choix possibles sont listés dans la section Options d'intervalle de cette page.Les valeurs de durée sont arrondies à l'entier inférieur le plus proche.
Le paramètre
datatypeest facultatif. Si votre groupe de dimensions n'est pas basé sur une date et heure, vous pouvez spécifier un format epoch, timestamp, date ou yyyymmdd. Pour les groupes de dimensionstype: duration, le paramètredatatypes'applique à la fois aux paramètressql_startetsql_end. Assurez-vous donc quesql_startetsql_endsont tous deux du type de données spécifié. Le paramètredatatypeest décrit plus en détail dans la section Spécifier la base de donnéesdatatypede cette page.
Bien qu'ils ne soient pas listés ici, de nombreux paramètres au niveau du champ peuvent également être utilisés avec les groupes de dimensions.
Par exemple, si vous avez des colonnes pour enrollment_date et graduation_date, vous pouvez créer un groupe de dimensions de durée pour voir combien de temps les élèves ont passé à l'école, calculé en intervalles de semaines et d'années :
dimension_group: enrolled {
type: duration
intervals: [week, year]
sql_start: ${TABLE}.enrollment_date ;;
sql_end: ${TABLE}.graduation_date ;;
}
Dans l'interface utilisateur Explorer, cela générerait un groupe de dimensions appelé Durée d'inscription, avec des dimensions individuelles appelées Semaines d'inscription et Années d'inscription.
Options d'intervalle
Le paramètre intervals indique au groupe de dimensions les unités d'intervalle à utiliser pour mesurer la différence de temps entre les heures sql_start et sql_end. Le paramètre intervals n'est compatible qu'avec les groupes de dimensions type: duration.
Si intervals n'est pas inclus, le groupe de dimensions inclut tous les intervalles possibles.
Les options du paramètre intervals sont les suivantes :
| Intervalle | Description | Exemple de résultat |
|---|---|---|
day |
Calcule une différence de temps en jours. | 9 days |
hour |
Calcule une différence de temps en heures. | 171 hours |
minute |
Calcule une différence de temps en minutes. | 10305 minutes |
month |
Calcule une différence de temps en mois. | 3 months |
quarter |
Calcule une différence de temps en trimestres. | 2 quarters |
second |
Calcule une différence de temps en secondes. | 606770 seconds |
week |
Calcule une différence de temps en semaines. | 6 weeks |
year |
Calcule une différence de temps en années. | 2 years |
Définir le début et la fin d'une durée
Pour les groupes de dimensions type: duration, les paramètres sql_start et sql_end fournissent les informations de début et de fin utilisées pour calculer une différence de temps. Ces champs peuvent accepter toute expression SQL valide contenant des données au format timestamp, datetime, date, epoch ou yyyymmdd. Les champs sql_start et sql_end peuvent avoir l'une des valeurs suivantes :
- Référence à une période
rawà partir d'un groupe de dimensions existant detype: time - Référence à une dimension de
type: date_raw - Expression SQL qui est un code temporel, par exemple une référence à une colonne SQL qui est un code temporel
- Expression SQL qui extrait une heure de votre base de données, en utilisant l'expression appropriée pour votre dialecte
- Référence de champ LookML utilisant la référence de type de champ
::datetimeou::date
Par exemple, supposons que vous disposiez d'une dimension nommée faa_event_date_raw contenant des informations de date et heure :
dimension: faa_event_date_raw {
type: date_raw
sql: ${TABLE}.event_date ;;
}
Vous pouvez créer un groupe de dimensions type: duration qui calcule le temps écoulé depuis la date de l'événement FAA. Pour ce faire, vous pouvez utiliser la dimension faa_event_date_raw comme heure de début du calcul, puis utiliser l'expression SQL de votre dialecte pour l'heure actuelle comme heure de fin du calcul. Voici un exemple pour une base de données MySQL :
dimension_group: since_event {
type: duration
intervals: [hour, day]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
Dans l'interface utilisateur Explorer, cela générerait un groupe de dimensions appelé Durée depuis l'événement, avec des dimensions individuelles appelées Heures depuis l'événement et Jours depuis l'événement.
Référencer des intervalles à partir d'un autre champ LookML
Pour référencer une valeur interval dans un dimension_group de type: duration, utilisez la syntaxe ${interval_fieldname}, en utilisant la version au pluriel de la valeur interval. Par exemple, dans l'exemple LookML suivant, la mesure average_days_since_event utilise ${days_since_event} pour faire référence à l'intervalle day dans le groupe de dimensions since_event :
dimension_group: since_event {
type: duration
intervals: [hour, day, week, month, quarter, year]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
measure: average_days_since_event {
type: average
sql: ${days_since_event} ;;
}
Utiliser les références des types de champs LookML avec les champs de durée
Pour créer un champ de durée personnalisé, vous pouvez spécifier un type de référence ::date ou ::datetime pour les dimensions référencées dans les paramètres sql_start et sql_end d'un groupe de dimensions de type: duration. La syntaxe view_name.field_name::type, décrite sur la page de documentation Intégrer SQL et faire référence aux objets LookML, vous permet de créer une version ::date ou ::datetime d'un champ sans caster les références à ces dimensions en chaînes.
Par exemple, supposons que vous disposiez d'un groupe de dimensions created de type: time avec des périodes time, date, week, month et raw, définies comme suit :
dimension_group: created {
type: time
timeframes: [time, date, week, month, raw]
sql: ${TABLE}.created_at ;;
}
À l'aide des dimensions created_month et created_time, vous pouvez créer un groupe de dimensions type: duration qui calcule le temps écoulé entre une date du champ created_date et le premier jour du mois au cours duquel cette date s'est produite, en semaines, jours et heures :
dimension_group: since_first_of_month {
type: duration
intervals: [week, day, hour]
sql_start: ${created_month::datetime} ;;
sql_end: ${created_time::datetime} ;;
}
Dans l'interface utilisateur Explorer, cela crée un groupe de dimensions appelé Durée depuis le début du mois, avec les dimensions individuelles Semaines depuis le début du mois, Jours depuis le début du mois et Heures depuis le début du mois. Spécifier le type de référence ::datetime pour les champs référencés dans les paramètres sql_start et sql_end permet de traiter les dimensions created_month et created_time comme des codes temporels dans le code SQL généré.
Par exemple, supposons qu'un utilisateur sélectionne les dimensions Date de création et Jours depuis le début du mois dans le sélecteur de champ. Si l'une des valeurs renvoyées pour Date de création est 2019-03-10, la valeur renvoyée pour Jours depuis le début du mois sera 9 jours.
Groupes de dimensions de type "Heure"
type: time est utilisé conjointement avec dimension_group et le paramètre timeframes pour créer un ensemble de dimensions temporelles. Par exemple, vous pouvez facilement créer une dimension de date, de semaine et de mois à partir d'une seule colonne d'horodatage.
La forme d'un groupe de dimensions de type: time est la suivante :
dimension_group: dimension_group_name {
type: time
timeframes: [timeframe, timeframe, …] # see following explanation for valid timeframes
sql: SQL expression ;; # often this is a single database column
datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
convert_tz: yes | no # defaults to yes
}
Pour les groupes de dimensions de type: time :
Le paramètre
timeframesest facultatif, mais il est rarement ignoré. Il spécifie un ou plusieurs intervalles de temps qui doivent être générés par le groupe de dimensions. Sitimeframesn'est pas inclus, toutes les options de période seront ajoutées au groupe de dimensions. Les choix possibles sont listés dans la section Options de période de cette page.Le paramètre
sqlpour les groupes de dimensionstype: timepeut accepter toute expression SQL valide contenant des données au format timestamp, datetime, date, epoch ou yyyymmdd.Le paramètre
datatypeest facultatif. Si votre groupe de dimensions n'est pas basé sur une date et heure, vous pouvez spécifier un format epoch, code temporel, date ou yyyymmdd. Pour en savoir plus, consultez la section Spécifier la base de donnéesdatatypesur cette page.Le paramètre
convert_tzest facultatif et vous permet d'empêcher la conversion automatique du fuseau horaire. Elle est décrite plus en détail dans la section Conversions de fuseaux horaires etconvert_tzde cette page.
Bien qu'ils ne soient pas listés ici, de nombreux paramètres au niveau du champ peuvent également être utilisés avec les groupes de dimensions.
Par exemple, supposons que vous disposiez d'une colonne nommée created_at contenant des informations de date et d'heure. Vous souhaitez créer une dimension de date, de semaine et de mois basée sur cette date et heure. Vous pouvez utiliser :
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
Dans l'interface utilisateur Explorer, cela générerait trois dimensions nommées Date de création, Semaine de création et Mois de création. Notez comment le nom dimension_group est combiné aux périodes pour générer les noms de dimensions.
Options de période
Le paramètre timeframes n'est compatible qu'avec les groupes de dimensions type: time. Pour les groupes de dimensions type: duration, utilisez plutôt le paramètre intervals.
Le paramètre timeframes indique au groupe de dimensions les dimensions qu'il doit produire. Il inclut les options suivantes :
- Périodes spéciales
- Périodes
- Périodes
- Périodes hebdomadaires
- Périodes mensuelles
- Périodes trimestrielles
- Périodes annuelles
hourXpériodesminuteXpériodesmillisecondXpériodes
Périodes spéciales
Périodes
| Délai | Description | Exemple de résultat |
|---|---|---|
time |
Date et heure du champ sous-jacent (certains dialectes SQL affichent la précision de votre base de données, tandis que d'autres n'affichent que les secondes) | 2014-09-03 17:15:00 |
time_of_day |
Heure de la journée | 17:15 |
hour |
Date et heure tronquées à l'heure la plus proche | 2014-09-03 17 |
hour_of_day |
Heure entière de la journée du champ sous-jacent | 17 |
hourX |
Divise chaque jour en intervalles du nombre d'heures spécifié. | Consultez Utiliser hourX. |
minute |
Date et heure tronquées à la minute la plus proche | 2014-09-03 17:15 |
minuteX |
Divise chaque heure en intervalles du nombre de minutes spécifié. | Consultez Utiliser minuteX. |
second |
Date et heure tronquées à la seconde la plus proche | 2014-09-03 17:15:00 |
millisecond |
Date et heure tronquées à la milliseconde la plus proche (pour en savoir plus sur la compatibilité des dialectes, consultez la section Compatibilité des dialectes pour les millisecondes et les microsecondes sur cette page). | 2014-09-03 17:15:00.000 |
millisecondX |
Divise chaque seconde en intervalles avec le nombre de millisecondes spécifié (pour en savoir plus sur la compatibilité des dialectes, consultez la section Compatibilité des dialectes pour les millisecondes et les microsecondes sur cette page). | Consultez Utiliser millisecondX. |
microsecond |
Date et heure tronquées à la microseconde la plus proche (pour en savoir plus sur la compatibilité des dialectes, consultez la section Compatibilité des dialectes pour les millisecondes et les microsecondes sur cette page). | 2014-09-03 17:15:00.000000 |
Périodes
| Délai | Description | Exemple de résultat |
|---|---|---|
date |
Date du champ sous-jacent | 2017-09-03 |
Périodes hebdomadaires
Périodes mensuelles
Pour utiliser les périodes fiscal_month_num, le paramètre fiscal_month_offset doit être défini dans le modèle.
Périodes trimestrielles
Pour utiliser les périodes fiscal_quarter et fiscal_quarter_of_year, le paramètre fiscal_month_offset doit être défini dans le modèle.
Périodes annuelles
Pour utiliser le délai fiscal_year, le paramètre fiscal_month_offset doit être défini dans le modèle.
Utiliser hourX
Dans hourX, X est remplacé par 2, 3, 4, 6, 8 ou 12.
Chaque jour sera divisé en intervalles du nombre d'heures spécifié. Par exemple, hour6 divisera chaque jour en segments de six heures, qui s'afficheront comme suit :
2014-09-01 00:00:002014-09-01 06:00:002014-09-01 12:00:002014-09-01 18:00:00
Par exemple, une ligne avec un time de 2014-09-01 08:03:17 aurait un hour6 de 2014-09-01 06:00:00.
Utiliser minuteX
Dans minuteX, X est remplacé par 2, 3, 4, 5, 6, 10, 12, 15, 20 ou 30.
Chaque heure sera divisée en intervalles de la durée spécifiée. Par exemple, minute15 divisera chaque heure en segments de 15 minutes, qui s'afficheront comme suit :
2014-09-01 01:00:002014-09-01 01:15:002014-09-01 01:30:002014-09-01 01:45:00
Par exemple, une ligne avec un time de 2014-09-01 01:17:35 aurait un minute15 de 2014-09-01 01:15:00.
Utiliser millisecondX
Dans millisecondX, X est remplacé par 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 ou 500.
Chaque seconde sera divisée en intervalles avec le nombre de millisecondes spécifié. Par exemple, millisecond250 divisera chaque seconde en segments de 250 millisecondes, qui s'afficheront comme suit :
2014-09-01 01:00:00.0002014-09-01 01:00:00.2502014-09-01 01:00:00.5002014-09-01 01:00:00.750
Par exemple, une ligne avec un time de 2014-09-01 01:00:00.333 aurait un millisecond250 de 2014-09-01 01:00:00.250.
Conversions de fuseaux horaires et convert_tz
En général, les calculs de temps (différences, durées, etc.) ne fonctionnent correctement que lorsque vous effectuez des opérations sur des valeurs temporelles qui sont toutes converties dans le même fuseau horaire. Il est donc important de garder les fuseaux horaires à l'esprit lorsque vous écrivez du code LookML.
Looker propose différents paramètres de fuseau horaire qui convertissent les données temporelles entre différents fuseaux horaires. Looker effectue la conversion du fuseau horaire par défaut. Le paramètre convert_tz est accepté pour les groupes de dimensions type: time. Si vous ne souhaitez pas que Looker effectue une conversion de fuseau horaire pour une dimension ou un groupe de dimensions spécifique, vous pouvez utiliser le paramètre convert_tz décrit sur la page de documentation du paramètre convert_tz.
Prise en charge des dialectes pour les millisecondes et les microsecondes
Looker accepte une précision des périodes jusqu'à la microseconde. Toutefois, certaines bases de données n'acceptent qu'une précision à la seconde. Si une base de données rencontre un intervalle de temps plus précis que ce qu'elle peut prendre en charge, elle l'arrondit à la seconde supérieure.
Dans la dernière version de Looker, les dialectes suivants acceptent les millisecondes :
| Dialecte | Compatibilité |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
Dans la dernière version de Looker, les dialectes suivants acceptent les microsecondes :
| Dialecte | Compatibilité |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
Spécifier la base de données datatype
Le paramètre datatype vous permet de spécifier le type de données temporelles de la table de votre base de données que vous fournissez au groupe de dimensions. Cela peut améliorer les performances des requêtes.
Pour les groupes de dimensions type: time, le paramètre datatype s'applique au paramètre sql du groupe de dimensions.
Pour les groupes de dimensions type: duration, le paramètre datatype s'applique à la fois aux paramètres sql_start et sql_end. Assurez-vous donc que sql_start et sql_end sont tous deux du type de données spécifié.
Le paramètre datatype accepte les valeurs suivantes :
epoch: champ d'époque SQL (c'est-à-dire un entier représentant le nombre de secondes depuis l'époque Unix).date: champ de date SQL (c'est-à-dire un champ qui ne contient pas d'informations sur l'heure de la journée).datetime: champ SQL datetime.timestamp: champ d'horodatage SQL.yyyymmdd: champ SQL contenant un entier représentant une date au format AAAAMMJJ.
La valeur par défaut de datatype est timestamp.
Exemples
Supposons que vous disposiez d'une colonne nommée created_at contenant des informations de date et d'heure. Vous souhaitez créer une dimension de date, de semaine et de mois basée sur cette date et heure. Vous pouvez utiliser :
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
-
Dans l'interface utilisateur Explorer, cela générerait trois dimensions nommées Date de création, Semaine de création et Mois de création. Notez comment le nom dimension_group est combiné aux périodes pour générer les noms de dimensions.
Éléments à prendre en compte
Les groupes de dimensions doivent être référencés par leurs dimensions individuelles.
Étant donné qu'un groupe de dimensions représente un groupe de dimensions, et non une seule dimension, vous ne pouvez pas y faire référence directement dans LookML. Vous devrez plutôt vous référer aux dimensions qu'il crée.
Prenons l'exemple du groupe de dimensions suivant :
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
Pour faire référence à l'une de ces dimensions dans un autre champ LookML, utilisez la référence ${created_date}, ${created_week} ou ${created_month}. Si vous essayez d'utiliser uniquement ${created}, Looker ne saura pas à quelle période vous faites référence et une erreur se produira.
Pour la même raison, vous ne devez pas utiliser le paramètre primary_key sur un groupe de dimensions si vous spécifiez plusieurs timeframe.
Conseil de l'équipe de chat : Nous sommes souvent interrogés sur l'erreur de validation qui peut se produire si vous utilisez
primary_keysur undimension_groupavec plusieurstimeframe. Pour en savoir plus, consultez le post sur les périodes et les groupes de dimensions dans Looker sur le forum de la communauté.
Données d'horodatage incluant des informations sur le fuseau horaire
Certains dialectes de base de données proposent des options d'horodatage qui incluent des informations sur le fuseau horaire. Cela vous permet de stocker des données d'horodatage dans un seul champ pouvant comporter plusieurs fuseaux horaires. Une ligne de données peut être stockée en UTC, une autre en heure de l'Est. Par exemple, consultez la documentation sur les codes temporels TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ de Snowflake pour en savoir plus sur les options de code temporel du dialecte Snowflake.
Dans ce cas, des erreurs peuvent se produire lorsque Looker effectue des conversions de fuseaux horaires. Pour éviter cela, dans le paramètre sql de la dimension, vous devez caster explicitement les données de code temporel vers un type de code temporel qui n'effectue pas de conversion de fuseau horaire. Par exemple, dans le dialecte Snowflake, vous pouvez utiliser la fonction TO_TIMESTAMP pour caster les données de code temporel.
Vous pouvez créer des dimensions temporelles ou de durée individuelles.
Vous pouvez créer une dimension pour chaque période ou durée que vous souhaitez inclure, au lieu de les générer toutes dans un seul dimension_group. En général, vous pouvez éviter de créer des dimensions individuelles, sauf si vous souhaitez modifier la convention de dénomination des périodes de Looker ou si vous avez déjà précalculé des colonnes temporelles dans votre base de données. Pour en savoir plus, consultez la page de documentation Types de dimensions, de filtres et de paramètres.
Vous pouvez modifier le premier jour de la semaine.
Par défaut, les semaines dans Looker commencent le lundi. Vous pouvez modifier cette valeur à l'aide du paramètre week_start_day au niveau du modèle.
N'oubliez pas que week_start_day ne fonctionne pas avec la période week_of_year, car celle-ci est basée sur la norme ISO, qui utilise des semaines commençant le lundi.
Les filtres et champs personnalisés ne sont pas compatibles avec toutes les périodes
Les périodes day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year et time_of_day ne sont pas compatibles avec les filtres personnalisés ni les champs personnalisés.
Les intervalles de mois, de trimestre et d'année ne comptent que les périodes complètes.
L'intervalle month d'un groupe de dimensions duration ne considère qu'un mois comme écoulé si le jour de fin est supérieur ou égal au jour de début.
Exemple :
- La différence en mois entre le 26 septembre et le 25 octobre de la même année est de 0.
- La différence en mois entre le 26 septembre et le 26 octobre de la même année est de 1.
Les intervalles quarter et year suivent la même logique.