SQL 检查订单日期更改的频率

SQL which checks, how often a date of an order has changed

我想构建一个 SQL 代码,它显示订单日期随时间变化的频率。我们的数据集如下 table:

我想说的话:

=最后应该显示,日期已经改变了一次

我已经尝试构建解决方案。

我希望你们能帮我解决这个问题。

谨致问候, M

这是某种间隙和孤岛问题。假设你的 RDBMS 支持 window 函数,你可以用 lag()sum():

来解决
select
    Auftrag,
    sum(case when BasicStart != lagBasicStart then 1 else 0 end) changeCount
from (
    select
        t.*,
        lag(BasicStart) over(partition by Auftrag order by time) lagBasicStart
    from mytable
) t
group by Auftrag

很难理解您的问题,SQL 可能因数据库而异。你应该把你试过的东西。根据我的理解,这是一个可能的解决方案:

SELECT count(*)
FROM table
WHERE auftrag = x
AND time <= y AND time >= z
ADN bereistellung = basicstart;