sql >> Database teknologi >  >> RDS >> Mysql

Opregn rækker i mysql baseret på grupper

Før introduktionen af ​​almindelige tabeludtryk i MySQL 8, ville GL's første metode være hurtigst, men her er et par andre ideer (også ved hjælp af ældre teknologi), bare for sjov...

1.

SELECT x.*
     , COUNT(*) rank 
  FROM my_table x 
  JOIN my_table y 
    ON y.a = x.a 
   AND y.b <= x.b 
 GROUP  
    BY x.a
     , x.b;

2.

SELECT x.* 
     , FIND_IN_SET(b,n) rank 
  FROM my_table x 
  JOIN 
     ( SELECT a 
            , GROUP_CONCAT(b ORDER BY b) n 
         FROM my_table 
        GROUP 
           BY a
     ) y 
    ON y.a = x.a;


  1. Hvordan får man en liste kolonnenavne og datatyper af en tabel i PostgreSQL?

  2. MySQL bestil indlæg efter seneste kommentar ELLER sidst opslået

  3. Sådan formateres tal som valuta i PostgreSQL

  4. Hvordan man genererer unik tilfældig værdi for hver bruger i laravel og tilføjer den til databasen