Pandas rank by multiple columns

The generic way to do that is to group the desired fiels in a tuple, whatever the types. df[“Rank”] = df[[“SaleCount”,”TotalRevenue”]].apply(tuple,axis=1)\ .rank(method=’dense’,ascending=False).astype(int) df.sort_values(“Rank”) TotalRevenue Date SaleCount shops Rank 1 9000 2016-12-02 100 S2 1 5 2000 2016-12-02 100 S8 2 3 750 2016-12-02 35 S5 3 2 1000 2016-12-02 30 S1 4 7 600 2016-12-02 … Read more

Rank() over Partition by in mysql

Try this query: – MySql does not support Rank() function. select result.id,result.login,result.rank from ( SELECT id, login, IF(login=@last,@curRank:=@curRank,@curRank:=@_sequence) AS rank, @_sequence:=@_sequence+1, @last:=login FROM ds , (SELECT @curRank := 1, @_sequence:=1, @last:=0) r ORDER BY id asc) as result; Hope it helps you!

MySQL, Get users rank

SELECT uo.*, ( SELECT COUNT(*) FROM users ui WHERE (ui.points, ui.id) >= (uo.points, uo.id) ) AS rank FROM users uo WHERE id = @id Dense rank: SELECT uo.*, ( SELECT COUNT(DISTINCT ui.points) FROM users ui WHERE ui.points >= uo.points ) AS rank FROM users uo WHERE id = @id

Rank function in MySQL

One option is to use a ranking variable, such as the following: SELECT first_name, age, gender, @curRank := @curRank + 1 AS rank FROM person p, (SELECT @curRank := 0) r ORDER BY age; The (SELECT @curRank := 0) part allows the variable initialization without requiring a separate SET command. Test case: CREATE TABLE person … Read more