所以我正在尝试为我的网站创建一个排名系统,但是由于许多记录都有相同的分数,它们都有相同的排名,有什么方法可以避免这种情况吗?
目前有
$conn = $db->query("SELECT COUNT( * ) +1 AS 'position' FROM tv WHERE points > ( SELECT points FROM tv WHERE id ={$data['id']} )");
$d = $db->fetch_array($conn);
echo $d['position'];
和DB结构
数据不一致导致记录重复。我正在尝试为每个患者只记录一条记录(记录最新的记录),由于地址更改,每个患者都有数十个重复记录。 当我运行下面的代码时,我的表中的每个记录似乎都被分配了1的排名。我如何为每个患者ID分配特定的排名? SELECT DISTINCT
PATIENT_ID
,ADDRESS_START_DATE
,ADDRESS_END_DATE
,RANK() OVER (PARTITION BY PATIENT_ID ,ADDRESS_START_DATE ORDER BY ADDRESS_START_DATE DESC) AS Ind
FRO
我们有一个返回以下内容的过程:
SELECT TOP 15 SearchName, AlternateName, CountryName, StateProvince, Latitude, Longitude, Type, boost + k.Rank as Rank
FROM SearchLocations
INNER JOIN CONTAINSTABLE([SearchLocations], [SearchName], @Search) AS k
ON SearchLocations.Id = k.[Key]
ORDER BY Rank DESC
基本上,它搜索[Searc
CREATE TABLE Player (
id BIGINT NOT NULL PRIMARY KEY,
xp BIGINT NOT NULL
);
INSERT INTO Player (id, xp) VALUES (1, 100);
INSERT INTO Player (id, xp) VALUES (2, 150);
INSERT INTO Player (id, xp) VALUES (3, 250);
INSERT INTO Player (id, xp) VALUES (4, 125);
INSERT INTO Player (id, xp) VALUES (5,
我正试图获得单一用户的排名位置。我已经有了获得全球排名的查询,但没有一个用户。
我试着:
SELECT FIND_IN_SET(`points`, (SELECT GROUP_CONCAT(`points` ORDER BY `points` DESC) FROM `users`)) AS `rank` FROM `users` WHERE `user` = '1'
但是,如果许多用户有相同的点,则该查询返回重复的排名位置。
我的全球排名查询是:
SET @rank := 0; SELECT `user`, `points`, @rank := @rank + 1 AS `ra
我有一个有3列的表格。它在第2列和第3列上有重复。我需要只选择重复的行(具有所有3列)。如何做到这一点?请帮帮我。
var1 var2 var3
a a a
b a a
c a a
d b b
e c c
上面是表的结构。它有3个专栏: var1,var2,var3。仅基于列var2和var3,我们必须假设它是重复记录。在查找副本时,我们不应该考虑var1。抱歉,对齐了。
我使用下面的查询
我正在使用django和redis来构建一个排名应用程序,条目得分以"ranking:id:item_rank“键存储在一个排序集中。Django-调试-工具栏说SQL查询在我显示排名和它在索引页面中的前三项时有重复。
# models.py
class Ranking(models.Model):
title = models.CharField(max_length=16, unique=True)
class Item(models.Model):
title = models.CharField(max_length=128)
ranking = mo
我想计算唯一的排名,但我得到了重复的排名
这是我的尝试:
SELECT
TG.EMPCODE,
DENSE_RANK() OVER (ORDER BY TS.COUNT_DEL DESC, TG.COUNT_TG DESC) AS YOUR_RANK
FROM
(SELECT
EmpCode,
SUM(CASE WHEN Tgenerate = 1 THEN 1 ELSE 0 END) AS COUNT_TG
FROM
TBLTGENERATE1
GROUP BY
我有一个表,我需要重复排名/密集排名n次。我见过一些文章,编号重新开始了一些分区,但对于我的例子,我没有一个我正在分区的列。 我正在找这样的东西。 ? 这就是我目前的代码 WITH d_rank_tbl AS(
SELECT
id,
1+ (dense_rank() over (order by id) - 1) % 10 as d_rank
FROM id_bucket)
SELECT
id,
dense_rank() over (partition by d_rank order by rand())
FROM d_rank_tbl
我正在尝试构建一个非常简单的在线功能系统。该系统必须处理的查询之一是返回记分板(所有球员的分数、排序和排名)。我知道基本的sql查询,但是当涉及到子查询和查询中的变量时,我完全不知所措。
该表只有三列。游戏,user_id,得分。该表将允许人们上传和下载任何游戏的分数。我需要知道如何创建一个查询,该查询只返回被查询游戏中的用户,按分数对玩家进行排序,然后对他们进行排序,这样重复的分数就会有相同的排名。下面是一个希望得到的结果的简单例子:
表格
user game score
fred A 100
bill
场地可以有一个或多个区域,相反,每个区域正好有一个场地。我使用的是Fluent NHibernate的build 1.0.0.636。
当我将Fetch.Join()添加到VenueMap以消除延迟加载时,生成的VenueMap包含一个从其本身返回到区域表的联接:(显然,简化了)
SELECT *
FROM Areas
LEFT OUTER JOIN Venues on Areas.VenueId = Venues.Id
LEFT OUTER JOIN Areas as Areas2 on Venues.Id = Areas2.VenueId
这将导致它返回重复的行,因此每个场
我使用这个查询来获取行的排名,按某个字段排序
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, id, ammopacks
FROM users
GROUP BY id
ORDER BY ammopacks DESC;
如何获得"x“id的排名,而不是之前所有的排名?我不想知道所有用户的排名,只想知道一个id。
有可能吗?
提前感谢
我有2个数据库(用户,userRankings)的系统,需要有排名更新每10分钟。我使用下面的代码来更新这些排名,它工作得相当好,但仍然需要一个完整的表扫描,这会减慢几十万用户的速度。
mysql_query("TRUNCATE TABLE userRankings");
mysql_query("INSERT INTO userRankings (userid) SELECT id FROM users ORDER BY score DESC");
mysql_query("UPDATE users a, userRankings b SET a.ra
我在mysql数据库上的触发器有问题。我有一个如下表:
id int not null auto_increment (PK)
parent_id int not null,
rank int not null
我正在尝试做的是,当它们具有相同的parent_id时,使用触发器将排名更新为下一个最高的+10,但这似乎不起作用。
DELIMITER $$
DROP TRIGGER IF EXISTS after_insert $$
create trigger after_insert
after insert on mytable
FOR EACH row
BEGIN
IF EXIST
我正在尝试对表中的数据子集进行排名,但我认为我做错了什么。我找不到关于postgres的rank()特性的太多信息,也许我找错地方了。无论哪种方式:
我想知道根据日期落入表的集群中的id的排名。我的疑问如下:
select cluster_id,feed_id,pub_date,rank
from (select feed_id,pub_date,cluster_id,rank()
over (order by pub_date asc) from url_info)
as bar where cluster_id = 9876 and feed_id = 1234;
我根据下面