sql >> Database >  >> RDS >> Mysql

sql selecteer elke maand top 5

Probeer deze zoekopdracht

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. Waar c3p0-afhankelijkheid in Tomcat Container te plaatsen

  2. CASE, WHEN, THEN, END gebruiken in een selectiequery met MySQL

  3. Toegang tot de webservice vanuit de opgeslagen procedure van Oracle

  4. Een niet-null-beperking toevoegen aan een kolom met null-waarden