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

Uzyskaj top k każdej grupy w MySQL

Spróbuj:

select postid, clicks,
    @num := if(@year = @year and @month = month, @num + 1, 1) row_number,
    @year := year year, @month := month month
from (
    select * from t
    order by year, month, clicks desc
) s, (select @num := 0, @year := '', @month := '') init
group by year, month, postid, clicks
having row_number <= 2
order by year, month, clicks desc

Fiddle tutaj




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sortowanie danych jak drzewo w SQL (Mysql)

  2. GRUPA MySQL WEDŁUG... MIEJĄCYCH różne wartości w tym samym polu

  3. Czy tokeny PDO muszą odpowiadać wartości bindValue 1:1?

  4. Proste wprowadzenie do korzystania z MySQL na terminalu Linux

  5. Jak uzyskać wszystkie dane z 2 tabel za pomocą klucza obcego?