sql >> データベース >  >> RDS >> Oracle

順序付けられた結果セットから行の「実行」を見つける

    複数のネストされたウィンドウ関数が必要です:

    SELECT *
    FROM
     (
       SELECT the_date, name, grp,
          COUNT(*) OVER (PARTITION BY grp) AS cnt
       FROM
        (
          SELECT the_date, name, 
             SUM(flag) OVER (ORDER BY the_date) AS grp
          FROM
           (
             SELECT the_date, name, 
                CASE WHEN LAG(name) OVER (ORDER BY the_date) = name THEN 0 ELSE 1 END AS flag
             FROM orders
             WHERE 
                 the_date BETWEEN 
                     TO_DATE('2013-09-18',..) AND 
                     TO_DATE('2013-09-22', ..)
           ) dt
        ) dt
     ) dt
    WHERE cnt >= 3
    ORDER BY the_date
    


    1. SQLite3.Exception:データベースディスクイメージの形式が正しくありません

    2. SQLServerデータベースですべてのチェック制約を有効にする方法-SQLServer/TSQLチュートリアルパート88

    3. mysqlテーブルを下からスキャンする

    4. plpythonのインポートステートメントはどのように処理されますか?