sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Rank per månad över flera månader

Jag tror att du vill att den inre underfrågan endast ska aggregeras efter kund, inte efter kund och datum:

select t1.*, 
       @rownum := @rownum + 1 AS RANK
from (select CUST, SUM(POLL) as SCORE
      from TABLE
      where EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-31'
      group by CUST
      order by SCORE desc
     ) t1 cross join
     (SELECT @rownum := 0) r 
order by RANK DESC;



  1. saknas eller ogiltigt alternativ vid skapande av tabell på grund av om det inte finns

  2. Synkronisera databasstruktur mellan applikationer

  3. Datagenerering och hårdvarukvalitet

  4. Oracle använder dynamisk sql när tabellnamn är en parameter