之前有几个问题(1和2)与我要尝试的工作非常接近,但是还没有弄清楚答案。
就我而言,我的数据可能包含多个连续重复项,因此从Martin did位置开始:
例如
id companyName
-------------------
1 dogs ltd
2 cats ltd
3 pigs ltd
4 pigs ltd
5 pigs ltd
6 cats ltd
7 cats ltd
8 dogs ltd
9 pigs ltd
我想回来
companyName
-----------
dogs ltd
cats ltd
pigs ltd
cats ltd
dogs ltd
pigs ltd
消除顺序重复项,但保持唯一值的顺序。在所有前面的问题中,使用超前和滞后功能,只会向前或向后看一个,而不允许有3个或更多重复的顺序值。
最佳答案
这样做:
SELECT companyName
FROM
(
SELECT
id
, companyName
, LEAD(companyName, 1, NULL) OVER (ORDER BY id) lead
FROM yourTable
) Q
WHERE
companyName <> lead
OR lead IS NULL
ORDER BY id