Skip to main content

Bonjour,

Dans un odsAdvAnalysis, j’utilise une clause order-by avec la fonction month(<date_field>), dans l’idée de trier mes résultats par mois. J’utilise aussi une clause group-by avec cette même fonction month(<date_field>) pour calculer une valeur mensuelle.

D’après la documentation de l’API Explore, month(<date_field>) retourne le mois sous la forme d’un string, et non d’un integer (en fait la documentation précise integer comme type de retour mais la description de la fonction précise qu’il s’agit d’un string)

Dès lors, le JSON généré présente les mois dans l’ordre suivant : 1, 10, 11, 12, 2, etc.
Autrement dit : janvier, octobre, novembre, décembre, février, etc.
 

Est-il possible de forcer le tri pour obtenir l’ordre calendaire des mois ? Autrement dit de forcer le tri sur la valeur entière du mois ?

Merci, Jérémy

Auto-translation 🪄

Hello,In an odsAdvAnalysis, I use an order-by clause with the month() function, with the idea of sorting my results by month. I also use a group-by clause with this same month() function to calculate a monthly value.According to the Explore API documentation, month() returns the month as a string, not an integer (in fact the documentation specifies integer as the return type but the function description specifies that it is a string). Therefore, the generated JSON presents the months in the following order: 1, 10, 11, 12, 2, etc. In other words: January, October, November, December, February, etc. Is it possible to force the sorting to obtain the calendar order of the months? In other words, to force the sorting on the integer value of the month?Thanks, Jeremy

Bonjour Jérémy,

 

Vous devriez pouvoir utiliser la fonction date_format dans le order by pour tier correctement : https://help.opendatasoft.com/apis/ods-explore-v2/#section/ODSQL-functions/date_format()

Est-ce que ça répond au besoin ?

 

Bien à vous,

 

Manon

Auto-translation 🪄

Hello Jeremy, You should be able to use the date_format function in the order by to tier correctly: https://help.opendatasoft.com/apis/ods-explore-v2/#section/ODSQL-functions/date_format() Does this meet the need? Best regards, Manon

Bonjour Manon,

Oui, c’est fonctionnel.
C’est même plus intéressant car cela permet aussi de trier les mois à cheval sur plusieurs années, en utilisant par exemple le format “MM-YYYY”.

Mon cas d’usage : des données de consommation énergétique. En particulier, les consommations de gaz sont souvent présentées à cheval sur 2 années, de juillet à juin, ce que l’on appelle l’année de chauffe (centrée sur la saison froide).

C’est parfait, merci,
Jérémy

 

Auto-translation 🪄

Hello Manon,Yes, it works. It's even more interesting because it also allows you to sort months over several years, using for example the format "MM-YYYY". My use case: energy consumption data. In particular, gas consumption is often presented over 2 years, from July to June, what is called the heating year (centered on the cold season). It's perfect, thank you, Jeremy

Reply