Accéder au contenu principal Passer au contenu complémentaire

Créer une variable et filtrer la sortie

Créez une variable pour calculer le prix total de chaque élément et utilisez-la pour filtrer votre sortie.

Procédure

  1. Sous la clause UNNEST dans la requête, utilisez le mot-clé LET pour créer une variable et attribuer à la variable une expression calculant le prix total d'un élément.
    Vous pouvez effectuer cette opération en multipliant l'élément price par l'élément qty : LET $total = toDecimal(qty * price)
  2. Ajoutez un élément total_price avec la valeur $total dans la clause SELECT.
    La clause SELECT doit ressembler à ceci :
    SELECT {
        c.name,
        c.rating,
        o.orderno,
        itemno,
        total_price = $total
    }
  3. Sous la clause LET, ajoutez une clause WHEREpour conserver les éléments ayant un prix total supérieur à 100 : WHERE $total > 1000.
  4. Sous la clause JOIN, ajoutez une autre clause WHERE pour conserver les client·es ayant une note supérieure à 650 : WHERE c.rating > 650.
  5. Pour retourner une sortie avec uniquement l'élément ayant le prix total le plus élevé, ajoutez la clause suivante après la clause SELECT : ORDER BY $total DESC LIMIT 1.
    Cela permet d'ordonner la sortie du total le plus élevé au total le moins élevé, ainsi que de conserver uniquement le premier résultat.

Résultats

La requête complète doit ressembler à ceci :
FROM order AS o
UNNEST o.items
LET $total = toDecimal(qty * price)
WHERE $total > 1000
JOIN customer AS c ON c.custid = o.custid
WHERE c.rating > 650
SELECT {
    c.name,
    c.rating,
    o.orderno,
    itemno,
    total_price = $total
} ORDER BY $total DESC LIMIT 1
Elle retourne le résultat suivant :
[
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1002,
		"itemno": 460,
		"total_price": 9594.05
	}
]

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !