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

SELECT /GROUPBY-値のシーケンス

    MySQLには分析関数がないため、少し複雑なバージョンです。 SUMだと思います val1の 必要です;

    SELECT SUM(val1) val1, MAX(val2) val2
    FROM (
      SELECT s1.val1, COUNT(s3.val1) grouping, s1.val2 val2
      FROM sequence s1
      LEFT JOIN sequence s2 ON s1.val1 >= s2.val1
      LEFT JOIN sequence s3 ON s3.val1 = s2.val1 - 1 AND s2.val2 <> s3.val2
      GROUP BY s1.val1
    ) a
    GROUP BY grouping
    ORDER BY grouping
    

    テストするSQLfiddle

    groupingを追加した場合 順序を明確にするために選択リストに移動すると、

    val1    val2    grouping
    15      1       0
    40      2       1
    65      1       2
    


    1. 日付範囲の現在の合計-不足している日付を入力します

    2. GTIDを使用してGaleraクラスターからスタンドアロンMySQLサーバーへの非同期レプリケーションを設定する方法

    3. MySQL DATEDIFF()とTIMEDIFF():違いは何ですか?

    4. 連続した日付のコレクションを取得する