【发布时间】:2014-10-30 09:50:12
【问题描述】:
我正在尝试使用以下查询获取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'
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
【问题讨论】:
-
添加tblMAEH表的数据。
-
实际上输出中的问题是什么。你需要什么输出?
-
即使有你的例子,我也没有太多可以尝试理解你想要实现的目标。您能否尝试编辑问题并告诉我们您要做什么,以及 expected 输出是什么?
-
@Damien_The_Unbeliever : 只需要根据 3,4,5 列找出排名
标签: mysql sql-server-2008 sql-server-2005 sql-server-2008-r2