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

(基準に基づいて)後続の行をグループ化し、それらをカウントする方法[MySQL]?

    そのために、いくつかの変数、テーブル構造を使用しました。テスト用に独自の変数を作成しました。これは次のとおりです。

    create table abc (id int, name varchar(20),type int);
    
    insert into abc values 
    ( 1 , 'A'    , 1  ),
    ( 2 , 'A'    , 2 ),
    ( 3 , 'B'    , 1  ),
    ( 4 , 'A'    , 1  ),
    ( 5 , 'A'    , 4  ),
    ( 6 , 'A'    , 5  )
    

    クエリは次のように終了しました:

    set @a:='';
    set @counter:=1;
    set @groupby:=0;
    select *,count(REPEATED) from (select name,if(@a=name,@counter:[email protected]+1,@counter:=1) as rep,if(@counter=1,@groupby:[email protected]+1,@groupby) as repeated,@a:=name type from abc) as t group by repeated
    

    SQLFIDDLE で機能することがわかります。 ご不明な点がございましたら、お気軽にお問い合わせください。

    SQLFIDDLEで




    1. TypeError:cursor()がflaskext.mysqlを使用して予期しないキーワード引数'dictionary'を取得しました

    2. SQLServerの「datetimeoffset」ストレージサイズを理解する

    3. Postgresql独自のインデックスを作成

    4. StrongLoopを使用してmysqlテーブルを自動作成する