Tous les produits
Search
Centre de documentation

Simple Log Service:Sous-requêtes imbriquées

Dernière mise à jour :Aug 26, 2026

Les sous-requêtes imbriquées intègrent une instruction SELECT dans une autre, permettant ainsi des analyses en plusieurs étapes, comme l'agrégation de résultats déjà agrégés.

Syntaxe

Utilisez une clause FROM dans l'instruction SELECT externe pour englober une sous-requête.

* | SELECT key FROM (sub_query)
Important
  • Entourez la sous-requête de parenthèses ().

  • Incluez la clause FROM log dans la sous-requête pour interroger le Logstore actuel.

Exemples

Example 1

Comptez les requêtes par méthode, puis déterminez le nombre minimal.

  • Instruction de requête

    * |
    SELECT
     min(PV)
    FROM  (
        SELECT
          count(1) as PV
        FROM      log
        GROUP BY
          request_method
      )
  • Résultats de la requête et de l'analyse

    Le résultat est 13, soit le nombre minimal de pages vues (PV) après regroupement par méthode de requête.

Example 2

Comparez les pages vues (PV) de l'heure actuelle avec celles de la même heure la veille. La plage de temps de la requête est définie sur 1 hour (on the hour). Le paramètre 86400 correspond au nombre de secondes dans une journée. Le terme log désigne le nom du Logstore.

  • Instruction de requête

    * |
    SELECT
      diff [1] AS today,
      diff [2] AS yesterday,
      diff [3] AS ratio
    FROM  (
        SELECT
          compare(PV, 86400) AS diff
        FROM      (
            SELECT
              count(*) AS PV
            FROM          log
          )
      )
  • Résultats de la requête et de l'analyse

    • 3337.0 : nombre de pages vues durant l'heure actuelle (par exemple, de 14 h 00 à 15 h 00 le 25 décembre 2020).

    • 3522.0 : nombre de pages vues durant la même heure la veille (par exemple, de 14 h 00 à 15 h 00 le 24 décembre 2020).

    • 0.947473026689381 : rapport entre le nombre de pages vues de l'heure actuelle et celui de la veille.

Example 3

Comptez le nombre de pages vues par page et calculez le pourcentage que chaque page représente par rapport au total.

  • Instruction de requête

    * |
    SELECT
      request_uri AS "Accessed Page",
      c AS "Count",
      round(c * 100.0 /(sum(c) over()), 2) AS "Percentage (%)"
    FROM  (
        SELECT
          request_uri AS request_uri,
          count(*) AS c
        FROM      log
        GROUP BY
          request_uri
        ORDER BY
          c DESC
      )