全部产品
Search
文档中心

Simple Log Service:Subqueries

更新时间:Jun 26, 2025

Subquery adalah kueri di mana pernyataan SELECT bersarang di dalam pernyataan SELECT lainnya. Subquery dapat digunakan untuk memenuhi kebutuhan analisis yang kompleks.

Sintaksis

Tentukan klausa FROM dalam pernyataan SELECT.

* | SELECT key FROM (sub_query)
Penting
  • Pernyataan subquery dalam klausa FROM harus diapit dengan tanda kurung ().
  • Untuk menganalisis data log di Logstore saat ini, Anda harus menentukan kata kunci FROM log.

Contoh

Contoh 1

Hitung jumlah tampilan halaman (PV) berdasarkan metode permintaan dan dapatkan jumlah PV minimum.

  • Pernyataan kueri
    * |
    SELECT
     min(PV)
    FROM  (
        SELECT
          count(1) as PV
        FROM      log
        GROUP BY
          request_method
      )
  • Hasil kueri dan analisisSubqueries

Contoh 2

Hitung rasio PV pada jam saat ini terhadap PV pada periode waktu yang sama di hari sebelumnya. Rentang waktu untuk kueri adalah 1 hour (on the hour). 86400 menunjukkan hasil dari waktu saat ini dikurangi 86400 detik, yang setara dengan 1 hari. log menunjukkan nama Logstore.

  • Pernyataan kueri
    * |
    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
          )
      )
  • Hasil kueri dan analisisResult of an interval-valued comparison
    • 3337.0 menunjukkan PV pada jam saat ini. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 25 Desember 2020.
    • 3522.0 menunjukkan PV pada periode waktu yang sama di hari sebelumnya. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 24 Desember 2020.
    • 0.947473026689381 menunjukkan rasio PV pada jam saat ini terhadap PV pada periode waktu yang sama di hari sebelumnya.

Contoh 3

Hitung jumlah PV di setiap halaman dan persentase PV di setiap halaman terhadap total PV.

  • Pernyataan kueri
    * |
    SELECT
      request_uri AS "Halaman akses",
      c as "PV",
      round(c * 100.0 /(sum(c) over()), 2) AS "Persentase%"
    FROM  (
        SELECT
          request_uri AS request_uri,
          count(*) AS c
        FROM      log
        GROUP BY
          request_uri
        ORDER BY
          c DESC
      )
  • Hasil kueri dan analisisSubqueries