MSSQL Row_Number() over(order by) in MySql

2019-01-15 15:21发布

问题:

i need to make a group by clause with the following query:

SELECT NAME, SUM(donationvalue) FROM tbl_pdm2k10_Donations
GROUP BY NAME
ORDER BY SUM(donationvalue) desc

but i want a column on the left returning me: 1, 2, 3, 4, 5, etc as as result. In MSSql i would do

  SELECT Row_Number() Over(order by SUM(donationvalue) desc), NAME, SUM(donationvalue)      
 FROM tbl_pdm2k10_Donations
    GROUP BY NAME

is this possible?

回答1:

set @row:=0;
SELECT 
  @row:=@row+1 as row_numer,
  NAME, 
  SUM(donationvalue) as total 
FROM tbl_pdm2k10_Donations
GROUP BY NAME
ORDER BY total desc


回答2:

Yes (using a variable)

See http://www.xaprb.com/blog/2006/12/02/how-to-number-rows-in-mysql/