我正在尝试找出如何根据两行之间的差异轻松选择记录。
我有一张这样的桌子。
Time | Store | Code | % | Ranked |
------------------------------------------
13:50 | Swindon | 33 | 32.578 | 1 |
13:50 | Reading | 31 | 29.438 | 2 |
13:50 | Bath | 32 | 28.221 | 3 |
14:50 | Swindon | 33 | 32.100 | 1 |
14:50 | Reading | 32 | 30.987 | 2 |
14:50 | Bath | 32 | 28.335 | 3 |
我需要根据不同时间商店之间的差异来做不同的报告。
一个例子。
从排名为2的商店中选择排名为1的所有商店>=
到3
因此,在这种情况下,它只会选择13:50 Swindon,因为%的差异仅略高于3%。
还有其他的变化,但我相信一旦我得到了答案,我可以自己解决其余的问题。
我知道正常的选择陈述,但我想我必须做一个连接,但只是不确定如何。
答案 0 :(得分:0)
基于上面给出的信息,我想这样的事情:
select *
from table t1
inner join table t2 on t1.Time = t2.Time and t1.Ranked = 1 and t2.Ranked = 2
where (t1.% - t2.%) > 3
列名有点偏,但我想排名是基于时间的。
答案 1 :(得分:0)
SELECT R1.store,
R1.timestamp
FROM store_tbl R1,
store_tbl R23
WHERE R1.ranked = 1
AND R23.ranked = 2
AND R1.timestamp = R23.timestamp
AND ( R1.percentage - R23.percentage ) > 3