所以我遇到了一个问题,因为我们一直在让复杂的SQL查询出错.
本质上,这会导致向不正确的客户发送邮件以及其他类似的"问题".
每个人创建类似SQL查询的经验是什么,基本上我们每隔一周创建一组新的数据.
所以这里有一些我的想法和他们的局限性.
创建测试数据 - 虽然这将证明我们拥有所有正确的数据,但并未强制排除生产中的异常.这是今天被认为是错误的数据,但10年前可能是正确的,没有记录,因此我们只在数据被提取后知道它.
创建维恩图和数据图 - 这似乎是测试查询设计的可靠方法,但它并不能保证实现是正确的.它让开发人员向前挖掘并思考他们写作时发生的事情.
感谢您提供给我的问题的任何输入.
我有一个具有以下结构的表:ID,月,年,值,每个ID每月一个条目的值,大多数月份具有相同的值.
我想为该表创建一个视图,该视图折叠相同的值,如:ID,开始月,结束月,开始年,结束年,值,每个值每个值一行.
问题是,如果值更改然后返回到原始值,则表中应该有两行
所以:
应该产生
当值返回到原始值时,以下查询适用于除此特殊情况之外的所有内容.
select distinct id, min(month) keep (dense_rank first order by month)
over (partition by id, value) startMonth,
max(month) keep (dense_rank first order by month desc) over (partition
by id, value) endMonth,
value
Run Code Online (Sandbox Code Playgroud)
数据库是Oracle