我有一个id和value列。我需要显示当前行中的值(在值列中)与前一行中的值不同的行。试图使用滞后,但它不工作,因为它应该。它应该显示1,5,7,9。(示例)+----+-------+|id值|+----+-------+| 1 | 10 || 3 | 10 || 5 | 20 || 6 | 20 || 7 | 30 || 9 | 40 || 10 | 40 |
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;
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)
2条答案
按热度按时间fv2wmkja1#
您可以使用:
ddhy6vgd2#
андрей. 请试试这个: