sql >> Databáze >  >> RDS >> Mysql

MySQL - Counter ve skupině

Uživatelsky definované proměnné jsou užitečné při řešení těchto problémů. Mělo by to fungovat:

select g, x, counter from (
    select g, x,
        @counter := if (g = @prev_g, @counter + 1, 1) counter,
        @prev_g := g
    from tb, (select @counter := 0, @prev_g := null) init
    order by g, x
) s

Pokud vám čtvrtý sloupec opravdu nevadí, můžete bezpečně odstranit vnější výběr. To by výrazně zlepšilo výkon.




  1. Získejte rozdíl mezi dvěma daty v měsících a dnech v SQL

  2. Význam WHERE 1 v dotazech MySQL

  3. Jak zkontrolovat, zda je datum mezi datem1 a date2 pomocí mysql?

  4. Android:Jak se připojit k dětské tabulce s nadřazenou tabulkou Sqlite