标签: ranking

MySQL"ORDER BY"某一列的行数是否相同?

我有一个叫做的表trends_points,这个表有以下几列:

  • id(行的唯一ID)
  • userId(在表中输入此用户的id)
  • 期限(一个字)
  • 时间(unix时间戳)

现在,我正在尝试对此表运行查询,该查询将获取特定时间范围内的行,这些行按特定时间范围内列term在表中出现的次数排序...例如,如果表具有以下内容行:

id | userId | term        | time
------------------------------------
1    28       new year      1262231638
2    37       new year      1262231658
3    1        christmas     1262231666
4    34       new year      1262231665
5    12       christmas     1262231667
6    52       twitter       1262231669
Run Code Online (Sandbox Code Playgroud)

我希望这些行的排序如下:

new year
christmas
twitter
Run Code Online (Sandbox Code Playgroud)

这是因为"新年"在时间框架中存在三次,"圣诞节"存在两次,"推特"仅存在一行.

到目前为止,我已经认为它是查询的特定时间范围部分的简单WHERE和GROUP BY,以阻止相同的术语在列表中出现两次.

这使得以下查询:

SELECT * 
  FROM `trends_points` 
 WHERE ( time >= <time-period_start> 
  AND time <= <time-period_end> ) 
GROUP BY `term`
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何做查询的最后部分?(按查询的结果排序多少行包含相同的"term"列值..).

mysql sql ranking

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

PostgreSQL:有效获取序数排名(行索引?)

你有一个像这样的表:

id dollars dollars_rank points points_rank
1  20      1            35     1
2  18      2            30     3
3  10      3            33     2
Run Code Online (Sandbox Code Playgroud)

我想要一个更新表的排名列 (dollars_rankpoints_rank) 的查询来设置给定 ID 的排名,这只是该 ID 的行索引,按相关列按降序排序。在 PostgreSQL 中如何最好地做到这一点?

postgresql ranking window-functions

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

机器学习中的逐点和成对排名有什么区别

我一直在读关于成对排名的论文,这是我没有得到的:

逐点和成对排名之间的训练/测试数据有何不同?这是我一直在阅读的论文:http: //www.cs.cornell.edu/people/tj/publications/joachims_02c.pdf

在那里,它表示pairwaise排名中的数据点是两个链接之间的不平等:

[line].=.[两个链接之间的不等,即目标] qid:[qid] [[链接1和2的特征]:[值1和2]]#[info]

但是,RankLib确实支持像RankNet和RankBoost这样的成对调度器,但它使用它的数据点格式是逐点的

[line].=.[绝对排名,即目标] qid:[qid] [feature1]:[value1] [feature2]:[value2] ...#[info]

有什么我想念的吗?

machine-learning ranking ranking-functions

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

对R中的数据框列进行排名

我有数据框,下面是它的样本数据.

Company     Category    Margin
SBI             BK      34.5
PNB             BK      39.5
UCO BANK        BK      39.9
BANK            BK      41.3
INDIAN BANK     BK      42.3
DENA BANK       BK      44.5
VIJAYA BANK     BK      44.5
UNION BANK      BK      47.6
CENTRAL BANK    BK      49.8
INFOSYS         IT      5.6
HCL TECH        IT      5.9
TCS             IT      6.9
CMC             IT      12.6
TECHMAHINDRA    IT      12.6
COGNIZANT       IT      15.8
IGATE           IT      22.4
WIPRO           IT      22.9
HEXAWARE        IT      34.8
MAHINDRA SATYAM IT      34.8
DR. REDDYS      PH      14.5
SUN PHARMA      PH      19.2
CIPLA           PH      23.9 …
Run Code Online (Sandbox Code Playgroud)

r ranking dataframe

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

查找一个向量中小于另一个向量中的元素的元素数

假设我们有几个向量

a <- c(1, 2, 2, 4, 7)
b <- c(1, 2, 3, 5, 7)
Run Code Online (Sandbox Code Playgroud)

对于我想要的每个元素b[i],b找到的元素数量a少于b[i]或等价,我想知道b_i的等级c(b[i], a).

我可以想到几种天真的方式,例如,做以下任何一种情况length(b):

min_rank(c(b[i], a))
sum(a < b[i])
Run Code Online (Sandbox Code Playgroud)

如果length(a)= length(b)= N,其中N很大,那么最好的方法是什么?

编辑:

为了澄清,我想知道是否有一种计算效率更高的方法来做到这一点,即在这种情况下我是否能比二次时间更好.

矢量化总是很酷;),谢谢@Henrik!

运行时间

a <- rpois(100000, 20)
b <- rpois(100000, 10)

system.time(
  result1 <- sapply(b, function(x) sum(a < x))
)
# user  system elapsed 
# 71.15    0.00   71.16

sw <- proc.time()
  bu <- sort(unique(b))
  ab <- sort(c(a, bu)) …
Run Code Online (Sandbox Code Playgroud)

sorting r vector ranking time-complexity

4
推荐指数
2
解决办法
3024
查看次数

铁轨排名

我想创建一个用户排名.它应该按添加事件的数量对用户进行排序.

那是我的档案:

User.rb:

class User < ActiveRecord::Base
  has_many :events
  #...
end
Run Code Online (Sandbox Code Playgroud)

ranking.html.erb:

<tr>
    <% User.all.each  do |user| %> 
    <td> <%= user.name %></td>
    <td> <%= user.events_count %></br></td> 
<% end %>
 </tr>
Run Code Online (Sandbox Code Playgroud)

schema.rb:

create_table "users", force: true do |t|
  #...
  t.integer  "events_count", default: 0
end
Run Code Online (Sandbox Code Playgroud)

怎么做?

ruby-on-rails ranking

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

排名与R的领带

我列出了比赛中的竞争对手和积分值.许多竞争对手都被束缚了.我需要一种方法在R中对它们进行排名,例如,如果四个竞争对手排在第四位,输出可能如下所示:

Competitor A: 1 
Competitor B: 2
Competitor C: 3
Competitor D: 4
Competitor E: 4
Competitor F: 4
Competitor G: 4
Competitor F: 8
Run Code Online (Sandbox Code Playgroud)

所以在平局之后的下一个排名,而不是5,将是8(因为四个竞争者占据了4-7的位置).

我知道这有点反直觉,但如果有人有任何想法,我将非常感激.谢谢!

数据

v1 <- setNames(c(4, 5, 2, 7, 7, 7, 7, 9), paste('Competitor', LETTERS[1:8]))
Run Code Online (Sandbox Code Playgroud)

r ranking

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

在python的数据框中的每一行中查找最高值

我想在每一行中找到最高值,并返回python中值的列标题.例如,我想在每行中找到前两个:

df =  
       A    B    C    D  
       5    9    8    2  
       4    1    2    3  
Run Code Online (Sandbox Code Playgroud)

我希望我的输出看起来像这样:

df =        
       B    C  
       A    D
Run Code Online (Sandbox Code Playgroud)

python ranking pandas

4
推荐指数
2
解决办法
2691
查看次数

优化SQL Server排名索引

我们有一个广泛的表,我们目前正在尝试优化.该表有50列(统计数据),我们最终希望按降序排列.目前有超过500万行.

我们正在寻找在降低复杂性和提高读取速度方面优化此表的方法.写入速度对我们来说也很重要,但读取更为关键.这些统计数据的排名应该尽可能接近实时,最佳解决方案是在每个请求的基础上快速排名(新行一直在增加,我们希望尽快显示这些行的排名) .)

我们目前正在评估垂直表格布局是否会更好.)更容易使用.

因为插入的统计数据不一定定义得很好,所以如果它们没有硬编码到表中,则更容易(因此优先选择垂直表结构.)

以下是我们当前的表结构和查询:

CREATE TABLE Stats 
(
    Id BIGINT PRIMARY KEY NOT NULL,
    UserId INT,
    Name VARCHAR(32) NOT NULL,
    Value DECIMAL(10,4) DEFAULT ((0)) NOT NULL,
    UpdatedAt DATETIME
);

CREATE INDEX Leaderboard__index ON Stats (Name, Value DESC);

SELECT
    Id,
    Name,
    Value,
    RANK() OVER (PARTITION BY Name ORDER BY Value DESC) AS Rank
FROM 
    Stats
ORDER BY 
    Value DESC
Run Code Online (Sandbox Code Playgroud)

通常我们要么搜索任何给定统计数据的前N行(如排行榜),要么我们选择单个UserId并获得与该UserId相关的所有统计数据的排名.

数据相当大(正如我上面提到的,因为有很多行和很多列,垂直表结构可能在2.5亿行的范围内并且将继续增长.)

我们希望在需要的任何硬件上尽快获取这些数据,秒是我们的目标,因为我们目前在分钟范围内.

在对垂直表结构的测试中,我们插入了超过400,000行的数据,上面的查询需要不到3分钟(尽管它也只需要大约18秒来排名10,000行.)

我很乐意听到任何建议.谢谢你的时间!

database optimization performance ranking sql-server-2014

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

常用和最近使用的物品排序算法

我正在寻找一种排名算法,该算法将按使用量和最近的使用量对项目(文件、应用程序、访问过的网站...)进行排序。

例如,在应用程序启动器中,用户键入应用程序名称的一些短前缀,满足条件的应用程序将被排名。app A 是用户最喜欢的 app,使用频率很高,但现在他经常使用 app B,只是偶尔使用 app A。app A 的启动次数比 app B 多,但 B 上次的使用次数比 A 多。

所以应用 B 排在应用 A 之前。

此外,如果应用 C 想要超过应用 B,它必须被更频繁地使用(最近一段时间),但对于应用 A 来说,它不需要太多的使用,因为它是用户最喜欢的应用,并且过去比其他应用程序有更多的用途。

我不知道这是否是我想要的一个很好的解释,但我希望有些人会理解。

algorithm ranking

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