Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mendapatkan kumpulan wire_open dan wire_close pertama dalam data

Ini adalah data yang saya ingin keluarkan, ia sepadan dengan garis biru dan foto output yang dikehendaki yang telah saya lampirkan, sila lihat dan gunakan pertanyaan SQL untuk mendapatkan hasil yang diingini

P粉317679342P粉317679342236 hari yang lalu336

membalas semua(1)saya akan balas

  • P粉571233520

    P粉5712335202024-02-27 07:08:07

    Uji:

    WITH
    cte AS (
        SELECT *, SUM(delay_ping_type = 'wire_close') OVER (ORDER BY last_updated_on DESC) group_no
        FROM source_table
    )
    SELECT MIN(last_updated_on) wire_open, 
           MAX(last_updated_on) wire_close 
    FROM cte
    -- WHERE group_no > 0   -- removes final open without close
    GROUP BY group_no
    -- HAVING wire_open < wire_close  -- removes close without matched open
    -- HAVING MIN(last_updated_on) < MAX(last_updated_on) -- the same for PostgreSQL
    ;
    

    https://www.db-fiddle.com/f/njuPYFYug87jTWKHHv6yRK/2 (Terima kasih kepada @lemon untuk biola).

    balas
    0
  • Batalbalas