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,987
  • 24
  • 67
  • 120

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
  • 46,720
  • 11
  • 89
  • 119
1

Yes (using a variable)

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

Martin Smith
  • 438,706
  • 87
  • 741
  • 845