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
我正在研究要用于报告 (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