SQL 检查下一个值是否相同或不同,只有不同时才写入

SQL Checking if next value is the same or different and write only if it is different

我正在研究要用于报告 (ssrs) 的 sql (TSQL) 查询。 我有一个 table 的设备值如下(当然还有其他字段,但这两个很重要)

 device| value
  01      a
  01      a
  01      b
  01      a
  01      b
  01      c
  01      c
  01      c
  01      d

我想要的是只看到不同的行而不是不同的行 而是喜欢

 device| value
  01      a
  01      b
  01      a
  01      b
  01      c
  01      d

然后我会为每个用户写一些东西,比如使用 xml

路径的值路径
device |  path 
 01      a - b - a - b - c - d

然后按路径分组并计算用户数

你觉得这可能吗?

您可以使用滞后功能。

SELECT 
 ... 
 , LAG(ValueYouWishToUse, 1,0) OVER (ORDER BY YEAR(OrderByColumnName)) AS PreviousValue
FROM
 ...
WHERE
 ...

详情请参考this