之前有几个问题(1& 2)与我正在尝试的内容非常接近,但未能取出答案。
就我而言,我的数据可能包含多个连续重复项,因此从Martin did开始:
e.g。
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
消除顺序重复项,但保持唯一值的顺序。在之前的所有问题中,使用 lead 和 lag 函数,这些函数只能提前或落后,不允许3个或更多重复的连续值。
答案 0 :(得分: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