5

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?

André Alçada Padez
  • 10,111
  • 22
  • 62
  • 114

2 Answers2

4
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
ajreal
  • 45,869
  • 10
  • 83
  • 118
1

Yes (using a variable)

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

Martin Smith
  • 419,657
  • 83
  • 708
  • 800