gpt4 book ai didi

mysql - 未获得按日期时间进行 Rank() 分区的正确排名

转载 作者:行者123 更新时间:2023-11-29 23:29:58 25 4
gpt4 key购买 nike

我正在尝试使用以下查询获取RANK。我不知道我具体是在哪里打起来的。谁能帮我解决这个问题吗?

SELECT  ID,CMNo,PLat,PLon,RDTime
,RANK() OVER (PARTITION BY CMNo,PLat,PLon,RDTime ORDER BY RDTime) Ranks
FROM tblMAEH WITH(NOLOCK)
WHERE CMNo = 69
AND RDTime BETWEEN '2014-10-19 00:00:00.000' AND '2014-10-20 23:59:59.997'

enter image description here

CREATE TABLE #test (id     INT,CMNo   INT,PLat   NUMERIC(22, 6),Plon   NUMERIC(22,     6),RDTime DATETIME)

INSERT INTO #test VALUES (8630,69,19.08491,72.83919,'21 oct 2014 14:38:13')
INSERT INTO #test VALUES (8631,69,19.08491,72.83919,'22 oct 2014 18:38:13')
INSERT INTO #test VALUES (8632,69,19.08491,72.83919,'20 oct 2014 14:39:13')
INSERT INTO #test VALUES (8633,69,19.08491,72.83919,'20 oct 2014 14:38:13')


SELECT ID,CMNo,PLat,PLon,RDTime,Rank()OVER (PARTITION BY CMNo, PLat, PLon, RDTime Order BY RDTime) Ranks
FROM #test WITH(NOLOCK)
WHERE CMNo = 69
AND RDTime BETWEEN '2014-10-19 00:00:00.000' AND '2014-10-25 23:59:59.997'

drop table #test

enter image description here

最佳答案

由于日期时间的毫秒部分,所有标有红色标记的选定行的排名并未获得 1。

例如,对于 ID 8630,RDTime 值为 20 Oct 2014 14:38:13

RDTime 字段的实际值可能是 20 Oct 2014 14:38:13.000对于下一行,毫秒部分是不同的。因此,所有四行的排名并不相同。

所以请删除RDTime字段的毫秒部分,然后尝试重新查询相同的SQL。

关于mysql - 未获得按日期时间进行 Rank() 分区的正确排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com