Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете top-k от всяка група в MySQL

Опитайте това:

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 тук




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате MySQL 8 на Ubuntu 20.04 LTS

  2. Как да вмъкна стойности в таблица с външен ключ с MySQL?

  3. Неизвестна колона, докато използвате псевдоним mysql

  4. извикайте проста процедура за база данни с помощта на Slick 3.0

  5. Изключения на Python MySQLdb