标签: rank

MySQL中的ROW_NUMBER()

MySQL是否有一种很好的方式来复制SQL Server功能ROW_NUMBER()

例如:

SELECT 
    col1, col2, 
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
Run Code Online (Sandbox Code Playgroud)

然后,我可以,例如,添加一个限制intRow为1 的条件,以获得col3(col1, col2)对最高的单行.

mysql sql row-number rank greatest-n-per-group

268
推荐指数
11
解决办法
49万
查看次数

MySQL中的排名功能

我需要找出客户的排名.在这里,我为我的要求添加了相应的ANSI标准SQL查询.请帮我转换为MySQL.

SELECT RANK() OVER (PARTITION BY Gender ORDER BY Age) AS [Partition by Gender], 
  FirstName, 
  Age,
  Gender 
FROM Person
Run Code Online (Sandbox Code Playgroud)

有没有找到MySQL排名的函数?

mysql sql rank

149
推荐指数
8
解决办法
24万
查看次数

获取每组最高/最小<whatever>的记录

怎么做?

这个问题的前标题是" 在带有子查询的复杂查询中使用等级(@Rank:= @Rank + 1) - 它会起作用吗? "因为我正在寻找使用等级的解决方案,但现在我看到Bill发布的解决方案是好多了.

原始问题:

我正在尝试编写一个查询,该查询将根据定义的顺序从每个组获取最后一条记录:

SET @Rank=0;

select s.*
from (select GroupId, max(Rank) AS MaxRank
      from (select GroupId, @Rank := @Rank + 1 AS Rank 
            from Table
            order by OrderField
            ) as t
      group by GroupId) as t 
  join (
      select *, @Rank := @Rank + 1 AS Rank
      from Table
      order by OrderField
      ) as s 
  on t.GroupId = s.GroupId and t.MaxRank = s.Rank
order by OrderField
Run Code Online (Sandbox Code Playgroud)

表达式@Rank := @Rank + 1 …

mysql subquery rank greatest-n-per-group

84
推荐指数
1
解决办法
3万
查看次数

组内的熊猫数量行

给出以下数据框:

import pandas as pd
import numpy as np
df=pd.DataFrame({'A':['A','A','A','B','B','B'],
                'B':['a','a','b','a','a','a'],
                })
df

    A   B
0   A   a 
1   A   a 
2   A   b 
3   B   a 
4   B   a 
5   B   a
Run Code Online (Sandbox Code Playgroud)

我想创建列'C',它在A和B列中对每组内的行进行编号,如下所示:

    A   B   C
0   A   a   1
1   A   a   2
2   A   b   1
3   B   a   1
4   B   a   2
5   B   a   3
Run Code Online (Sandbox Code Playgroud)

到目前为止我试过这个:

df['C']=df.groupby(['A','B'])['B'].transform('rank')
Run Code Online (Sandbox Code Playgroud)

......但没有骰子!提前致谢!

group-by rank python-3.x pandas

37
推荐指数
2
解决办法
2万
查看次数

如何使用.htaccess文件阻止IP地址范围

我检测到一系列IP地址可能以恶意方式使用,我不知道如何阻止它.

我想通过使用.htaccess文件阻止访问我网站的范围66.249.74.*.

ip .htaccess file block rank

35
推荐指数
2
解决办法
6万
查看次数

大熊猫按列值排名

我有一个包含拍卖ID和出价的数据框.数据框按拍卖ID(升序)和出价(降序)排序:

Auction_ID    Bid_Price
123           9
123           7
123           6
123           2
124           3
124           2
124           1
125           1
Run Code Online (Sandbox Code Playgroud)

我想添加一个名为"Auction_Rank"的列,按照出价对拍卖ID进行排名:

Auction_ID    Bid_Price    Auction_Rank
123           9            1
123           7            2
123           6            3
123           2            4
124           3            1
124           2            2
124           1            3
125           1            1
Run Code Online (Sandbox Code Playgroud)

rank dataframe pandas

23
推荐指数
1
解决办法
4万
查看次数

排名(RowNumber)和分组的SQL Server查询

我有一个表有一些列:用户,类别,价值

我想创建一个查询,根据值给出一个所有用户的排名,但重置该类别.

例:

user1   CategoryA 10
user2   CategoryA 11
user3   CategoryA 9
user4   CategoryB 3
user1   CategoryB 11
Run Code Online (Sandbox Code Playgroud)

查询将返回:

Rank  User   Category  
1     user2   CategoryA
2     user1   CategoryA
3     user3   CategoryA
1     user1   CategoryB
2     user4   CategoryB
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我编写查询并指定类别,它工作但我必须编写循环,它非常慢.

sql t-sql sql-server group-by rank

22
推荐指数
1
解决办法
6万
查看次数

Hive通过查询获取组中的前n个记录

我在hive中有下表

用户ID,用户名,用户地址,点击次数,展示次数,页面ID,页面名称

我需要通过每个页面的点击次数找到前5位用户[user-id,用户名,用户地址] [page-id,page-name]

我知道我们需要先按[page-id,page-name]进行分组,然后在每个组中我想通过[clicks,impressions] desc排序,然后只排出前5位用户[user-id,user-name,user-地址]为每个页面,但我发现很难构建查询.

我们怎么能用HIve UDF做到这一点?

hive user-defined-functions rank

22
推荐指数
3
解决办法
4万
查看次数

计算MySQL中的百分位数

我在MySQL中有一个非常大的测量数据表,我需要为这些值中的每一个计算百分等级.Oracle似乎有一个名为percent_rank的函数,但我找不到类似MySQL的东西.当然,我可以在Python中强制使用它,我仍然使用它来填充表格,但我怀疑这样做效率很低,因为一个样本可能有200,000个观察值.

mysql rank percentile

19
推荐指数
3
解决办法
4万
查看次数

在mysql中:=运算符是什么意思?

我有一个mysql表(scho_id,school_name,school_views).

我正在寻找一个基于的学校的mysql查询.rankschool_views

我在stackoverflow上找到了这个解决方案.

SET @points := -1, @num := 0;
SELECT scho_id
, school_views
, @num := if(@points = school_views, @num, @num + 1) as school_rank
, @points := school_info.school_views as dummy
FROM school_info
ORDER BY school_views desc, scho_id asc;
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题,但我注意到:=这个查询中有一个新的运算符.我很想知道这个运算符的含义和用法.

mysql operators rank colon-equals

18
推荐指数
1
解决办法
1万
查看次数