Syntaxe des requêtes RAQL

Une fois que vous avez sélectionné une source de données, vous pouvez utiliser une requête RAQL pour analyser des données. Le langage RAQL est basé sur SQL et comporte des extensions fonctionnelles qui ne sont pas définies dans SQL. La documentation suivante porte essentiellement sur l'utilisation de RAQL et de ces extensions fonctionnelles. Pour une introduction détaillée à SQL, nous vous renvoyons aux ouvrages usuels sur SQL.

RAQL fournit les clauses SQL type de lecture et d'exploration des données. Certaines clauses SQL et une partie de la syntaxe ne sont pas présentes dans RAQL. Une requête RAQL est constituée de clauses :

syntaxe de requête raql

Consultez Référence au langage pour un aperçu des expressions valides de chacune de ces clauses.

La forme la plus basique d'une requête RAQL inclut les clauses SELECT et FROM.

La clause SELECT détermine quelles colonnes intégrer au résultat et peut également servir à réaliser une analyse si elle est utilisée en combinaison avec la clause OVER ou la clause GROUP BY. La clause FROM détermine quel jeu de données interroger ou peut servir à définir une sous-requête à utiliser comme source des données.

Les clauses d'opération sur un jeu permettent à la requête de récupérer un jeu de données supplémentaire, à l'aide d'une autre requête, puis de joindre, combiner ou filtrer ces jeux de données pour obtenir un jeu de données plus complexe. L'opération sur un jeu JOIN, par exemple, met en correspondance les lignes des deux jeux de données en fonction d'une condition et ajoute des colonnes des deux jeux de données à la ligne jointe.

La clause WHERE filtre les lignes du jeu de données. ORDER BY trie les lignes du résultat. LIMIT détermine le nombre maximal de lignes de résultat que la requête peut renvoyer.

Les clauses OVER et GROUP BY regroupent les lignes des deux jeux de données dans différents jeux sur la base d'une expression. Ces groupes déterminent l'étendue des lignes qui sont utilisées dans les fonctions analytiques dans la clause SELECT. La clause HAVING filtre les ensembles de groupes qui sont renvoyés dans une clause GROUP BY.

OVER et GROUP BY sont mutuellement exclusives, car elles ont des effets différents sur les données renvoyées par la requête. La clause OVER procède à des calculs et ajoute ces calculs à chaque ligne sous forme de colonnes supplémentaires. Quant à la clause GROUP BY, elle procède à des calculs et renvoie juste ces calculs pour chaque groupe.

La plupart des clauses RAQL prennent également en charge l'utilisation de fonctions à l'intérieur de leurs expressions. Les fonctions RAQL sont de deux sortes :

RAQL propose un ensemble d'extensions fonctionnelles (simples et analytiques) ainsi qu'un moyen de définir vos propres fonctions. Reportez-vous à Extensions RAQL pour plus d'informations.