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

sql wybierz top 5 co miesiąc

Wypróbuj to zapytanie

select * from
(select 
@rn:=if(@prv=product_id, @rn+1, 1) as rId,
@prv:=product_id as product_id,
year, 
month,
revenue
from tbl
join
(select @prv:=0, @rn:=0)tmp
order by 
product_id, revenue desc) a
where rid<=5

SQL FIDDLE :

| RID | PRODUCT_ID | YEAR | MONTH | REVENUE |
---------------------------------------------
|   1 |          1 | 2013 |     1 |     100 |
|   2 |          1 | 2013 |     1 |      90 |
|   3 |          1 | 2013 |     1 |      70 |
|   4 |          1 | 2013 |     1 |      60 |
|   5 |          1 | 2013 |     1 |      50 |
|   1 |          2 | 2013 |     1 |    5550 |
|   2 |          2 | 2013 |     1 |     550 |
|   3 |          2 | 2013 |     1 |     520 |
|   4 |          2 | 2013 |     1 |     510 |
|   5 |          2 | 2013 |     1 |     150 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdalne zgłaszane połączenia mySQL nie mogą połączyć się z MySQL 4.1+ przy użyciu starego, niezabezpieczonego błędu uwierzytelniania z XAMPP

  2. Wielokrotny dostęp do tabeli tymczasowej w MySql

  3. Jak sprawdzić duplikaty w tabeli mysql w wielu kolumnach?

  4. MySQL - wstawiaj dane z innej tabeli połączone ze stałymi

  5. jak uzyskać pojedynczą wartość z tablicy w codeigniter