显示具有不同值的行

kokeuurv  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(146)

我有一个id和value列。我需要显示当前行中的值(在值列中)与前一行中的值不同的行。试图使用滞后,但它不工作,因为它应该。
它应该显示1,5,7,9。(示例)
+----+-------+
|id值|
+----+-------+
| 1 | 10 |
| 3 | 10 |
| 5 | 20 |
| 6 | 20 |
| 7 | 30 |
| 9 | 40 |
| 10 | 40 |

fv2wmkja

fv2wmkja1#

您可以使用:

select id, value
from (select t.*, lag(value) over (order by id) as prev_value
      from t
     ) t
where prev_value is null or prev_value <> value
order by id;
ddhy6vgd

ddhy6vgd2#

андрей. 请试试这个:

SELECT id,value FROM
(
 SELECT id, value, LAG(value)OVER (order by id) prevVal
 from tab
) X 
WHERE (prevVal<>value) or (prevVal IS NULL)

相关问题