recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir le premier groupe wire_open et wire_close dans les données

Ce sont les données que je souhaite afficher, elles correspondent à la ligne bleue et à la photo de la sortie souhaitée que j'ai jointe, veuillez y jeter un œil et utiliser la requête SQL pour obtenir le résultat souhaité

P粉317679342P粉317679342329 Il y a quelques jours407

répondre à tous(1)je répondrai

  • P粉571233520

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

    Testez-le :

    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 (Merci à @lemon pour le violon).

    répondre
    0
  • Annulerrépondre