一位朋友给我出了一道SQL题,要求将下面的SQL语句改写成不使用keep分析函数的写法。
起初我改写时出现了错误,被朋友批评了一番,感到有些沮丧。
我换了一张表进行测试后,发现我之前的改写存在逻辑问题。如果 同一个组内有相同日期 , 分组字段内有NULL值 ,会导致SQL结果集不一致。
最终我对SQL进行了等价改写, 增加了分组字段内有NULL值的逻辑 , 处理了一个组内有相同日期的情况 。
经过差集比较后,我发现等价改写的SQL如下: