Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wybrać stałą liczbę wierszy dla każdej grupy?

Użyj:

SELECT x.a,
       x.b,
       x.distance
  FROM (SELECT t.a,
               t.b,
               t.distance
               CASE 
                 WHEN @distance != t.distance THEN @rownum := 1 
                 ELSE @rownum := @rownum + 1 
               END AS rank,
               @distance := t.distance
          FROM TABLE t
          JOIN (SELECT @rownum := 0, @distance := '') r
      ORDER BY t.distance --important for resetting the rownum variable) x
 WHERE x.rank <= 2
ORDER BY x.distance, x.a


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zatrzymać zapytanie MySQL, jeśli trwa zbyt długo?

  2. Jak korzystać z ról, które zmieniły się w MySQL 8.0?

  3. Promień wielu punktów szerokości/długości geograficznej

  4. Jak zmienić kolejność klucza podstawowego?

  5. java jdbc mysql connector:jak rozwiązać problem z rozłączeniem po długim okresie bezczynności