问题描述
SELECT
Rank() over (Partition by Category Order by Value, User, Category) as ranks,
Category, User
FROM
Table1
Group By
User, Category, Value
Order by
ranks asc
解决方法
我有一个包含一些列的表:用户,类别,值
我想进行查询,以按值对所有用户进行排名,但将类别重置。
例子:
user1 CategoryA 10
user2 CategoryA 11
user3 CategoryA 9
user4 CategoryB 3
user1 CategoryB 11
查询将返回:
Rank User Category
1 user2 CategoryA
2 user1 CategoryA
3 user3 CategoryA
1 user1 CategoryB
2 user4 CategoryB
有任何想法吗?
我编写查询并指定类别,它可以工作,但随后我必须编写循环,而且循环非常慢。