SQL - Comment utiliser ARRAY_REVERSE() ?

SQL - Comment utiliser ARRAY_REVERSE() ?

Date de sortie
September 3, 2024
Auteur
Bertrand Fabre
“Tu ne connais pas une petite fonctionnalité des familles pas souvent utilisée en SQL ?

☝️ Et bien, il y a ARRAY_REVERSE() sur BigQuery.

Imaginons que nous avons des enregistrements représentant chaque client et des arrays avec leurs différentes dates d’achat triée par ordre croissant.

Tout en voulant conserver le format tableau (ARRAY) nous voulons les trier de manière décroissante pour des questions d’affichage de sortie des données.

WITH customer_purchases AS (
    SELECT 1 AS customer_id, ['2024-09-01', '2024-09-02', '2024-09-03'] AS purchase_dates UNION ALL
    SELECT 2 AS customer_id, ['2024-09-03', '2024-09-06', '2024-09-07'] AS purchase_dates UNION ALL
    SELECT 3 AS customer_id, ['2024-09-05', '2024-09-08', '2024-09-10'] AS purchase_dates
),
inverted_purchases AS (
    SELECT
        customer_id,
        ARRAY_REVERSE(purchase_dates) AS reversed_purchase_dates
    FROM customer_purchases
)
SELECT
    customer_id,
    reversed_purchase_dates
FROM inverted_purchases
;

Les résultats

customer_id
reversed_purchase_dates
1
[2024-09-03,2024-09-02,2024-09-01]
2
[2024-09-07,2024-09-06,2024-09-03]
3
[2024-09-10,2024-09-08,2024-09-05]

Merci de votre lecture !