我不是编程新手,但我是MySQL和PHP的新手.我想知道最有效的方法是做什么.我不需要实际的代码,只需要步骤.
我有一个用户评论列表,简单地说:
USER REVIEW
Bob nice
John good
Fred bad
Bob poor
Bob the best
Fred medicre
Bob shiny
Run Code Online (Sandbox Code Playgroud)
我希望能够创建一个评论最多的评论者列表,即
USER REVIEWS
Bob 4
Fred 2
John 1
Run Code Online (Sandbox Code Playgroud)
什么是以最有效的方式解决这个问题的最佳方式
干杯!!
所以我有以下通用列表:
var topTenSomething = new List<Something>();
Run Code Online (Sandbox Code Playgroud)
这是件事:
public class Something
{
public string Name { get; set; }
public int Rank { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我想随机分配"Rank"属性,但需要从集合中的1个项目中进行排序.
因此,如果集合有3个项目,我想随机分配从1到3的排名:
然后下一次,它可能是:
明白我的意思了吗?
不知道怎么做 - 任何想法?
这是一个简单的研发原型 - 所以不要担心性能/为什么我这样做.(真实的将由数据库分配排名)
对LINQ /非LINQ版本感到满意 - 只要它有效.
我有一个MySQL查询,从多个表中选择数据,然后根据一些任意标准对结果进行排序,如下所示:
SELECT [columns] FROM (
SELECT *, COUNT(*) as `matches`
FROM [table1]
JOIN [table2] USING (id)
JOIN [table3] USING (id)
WHERE [criteria]
GROUP BY `id`
ORDER BY `matches` DESC
) AS `grouped`
ORDER BY (
(CASE WHEN [1st rank criteria] THEN 3 ELSE 0 END) +
(CASE WHEN [2nd rank criteria] THEN 2 ELSE 0 END) +
(CASE WHEN [3rd tank criteria] THEN 1 ELSE 0 END)
) DESC
LIMIT 100
Run Code Online (Sandbox Code Playgroud)
这很好,但我的问题是:我可以将排名分数显示为列吗?我看过尝试使用变量,但我对SQL很新,所以这一切都超出了我的意义.
对不起,如果这是一个显而易见的问题,但非常感谢您的时间和帮助.
我有一个网站,用户可以对网页上留下的评论进行评分.每个评论都有一个唯一的ID(例如402934)如果我希望用户能够拇指向上/向下翻阅所述评论我可以看到我如何制作一个简单的计数器代码来跟踪拇指向上和拇指的数量 - 但是如何确保每个用户只对所述评论进行一次排名.我打算创建一个数据库,每个注释编号作为一行,并且在该行中有一个排列它的所有用户的数组并且所有用户都对它进行了排名,但我感觉不是最好的方法.我的下一个想法是为每个用户创建一个表,然后有一个数组显示用户排名的所有评论.它可能会以这种方式运行得更快(例如,从用户的150个排名中检查评论的6050排名,但我仍然觉得有更好的方法......任何想法?
我正在使用 Google App Engine,因此我使用的是非关系数据库 (NoSQL)。我的问题是:
使用得分建模排名(玩家排名)的最佳选择是什么?
例如,我的球员是:
Player { String name, int score}
Run Code Online (Sandbox Code Playgroud)
我想知道一名球员的排名(位置)并获得前 10 名球员,但我怀疑这是最好的方法。
谢谢。
google-app-engine database-design ranking nosql amazon-simpledb
我是 R 的新手,我觉得它很有趣。
我有 MATLAB 代码来根据顺序对向量进行排名,效果很好。现在我想将其转换为 R 代码,这是一个典型的矛兵排名:
# MATLAB CODE
function r=drank(x)
u = unique(x);
[xs,z1] = sort(x);
[z1,z2] = sort(z1);
r = (1:length(x))';
r=r(z2);
for i=1:length(u)
s=find(u(i)==x);
r(s,1) = mean(r(s));
end
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
# R CODE
x = c(10.5, 8.2, 11.3, 9.1, 13.0, 11.3, 8.2, 10.1)
drank <- function(x){
u = unique(x)
xs = order(x)
r=r[xs]
for(i in 1:length(u)){
s=which(u[i]==x)
r[i] = mean(r[s])
}
return(r)
}
Run Code Online (Sandbox Code Playgroud)
r <- 喝了(x)
结果:
r = 5, 1.5, 6.5, 3, 8, 6.5, 1.5, …Run Code Online (Sandbox Code Playgroud) 在我试图找到带有关系的完美排名解决方案时,我一直坚持给出正确的排名。代码将解释我想要更好地实现的目标:
我有以下数组:
$standings = array(
'player_1' => 30,
'player_2' => 26,
'player_3' => 28,
'player_9' => 28
);
Run Code Online (Sandbox Code Playgroud)
现在为了用关系对它进行排名,我有以下功能:
function setRanking($standings) {
$rankings = array();
arsort($standings);
$rank = 1;
$tie_rank = 0;
$prev_score = -1;
foreach ($standings as $name => $score) {
if ($score != $prev_score) { //this score is not a tie
$count = 0;
$prev_score = $score;
$rankings[$name] = array('score' => $score, 'rank' => $rank);
} else { //this score is a tie
$prev_score = $score;
if ($count++ …Run Code Online (Sandbox Code Playgroud) 使用SQL Server 2014:
请考虑下表:
DECLARE @Table TABLE (
Id int NOT NULL identity(1,1),
Col_Value varchar(2)
)
INSERT INTO @Table (Col_Value)
VALUES ('A'),('A'),('B'),('B'),('B'),('A'),('A'),('B'),('B'),('B'),('A'),('B'),('B'),('A'),('A'),('B'),('C'),('C'),('A'),('A'),('B'),('B'),('C')
Run Code Online (Sandbox Code Playgroud)
如何在结果中创建一个生成R列的查询,如下所示
+----+------+---+
| ID | Data | R |
+----+------+---+
| 1 | A | 1 |
+----+------+---+
| 2 | A | 2 |
+----+------+---+
| 3 | B | 1 |
+----+------+---+
| 4 | B | 2 |
+----+------+---+
| 5 | B | 3 |
+----+------+---+
| 6 | A | 1 |
+----+------+---+ …Run Code Online (Sandbox Code Playgroud) 我需要根据与特定查询的相关性对数据集中的记录进行排名,但不能过滤掉不相关的数据.如果可能的话,我想使用Algolia.
想象一下,我有一个水果箱和地理位置的数据集.
[
{
"fruits": ["apple", "orange"],
"_geoloc": {"lat": 1, "lng": 2}
},
{
"fruits": ["banana", "apple"],
"_geoloc": {"lat": 8, "lng": 2}
},
{
"fruits": ["banana"],
"_geoloc": {"lat": 5, "lng": 2}
},
{
"fruits": ["apple", "banana"],
"_geoloc": {"lat": 8, "lng": 2}
},
{
"fruits": ["orange"],
"_geoloc": {"lat": 1, "lng": 2}
}
]
Run Code Online (Sandbox Code Playgroud)
我需要查询数据,以便返回所有数据,但按匹配排序到输入查询以及与指定地理位置的接近程度.
因此,如果地理定位是{"lat": 1, "lng": 2},并且查询是apple, banana结果排名数据将是这样的:
[
{
"fruits": ["apple", "banana"],
"_geoloc": {"lat": 8, "lng": 2}
},
{
"fruits": ["banana", "apple"],
"_geoloc": {"lat": …Run Code Online (Sandbox Code Playgroud) 同志们!请教。rank 函数在 R 中是如何工作的。我想确切地了解函数获得结果的公式和逻辑。比如独立贴在Excel里我不是很懂,比如我怎么得到这样的结果,不使用函数怎么自己得到。
> rank(c(1,10,1))
[1] 1.5 3.0 1.5
Run Code Online (Sandbox Code Playgroud)
我相信有人会用简单的数学来解释