相关疑难解决方法(0)

测试SQL查询的最佳方法

所以我遇到了一个问题,因为我们一直在让复杂的SQL查询出错.

本质上,这会导致向不正确的客户发送邮件以及其他类似的"问题".

每个人创建类似SQL查询的经验是什么,基本上我们每隔一周创建一组新的数据.

所以这里有一些我的想法和他们的局限性.

创建测试数据 - 虽然这将证明我们拥有所有正确的数据,但并未强制排除生产中的异常.这是今天被认为是错误的数据,但10年前可能是正确的,没有记录,因此我们只在数据被提取后知道它.

创建维恩图和数据图 - 这似乎是测试查询设计的可靠方法,但它并不能保证实现是正确的.它让开发人员向前挖掘并思考他们写作时发生的事情.

感谢您提供给我的问题的任何输入.

sql unit-testing

103
推荐指数
2
解决办法
8万
查看次数

SQL查询按日期范围折叠重复值

我有一个具有以下结构的表:ID,月,年,值,每个ID每月一个条目的值,大多数月份具有相同的值.

我想为该表创建一个视图,该视图折叠相同的值,如:ID,开始月,结束月,开始年,结束年,值,每个值每个值一行.

问题是,如果值更改然后返回到原始值,则表中应该有两行

所以:

  • 100 1 2008 80
  • 100 2 2008 80
  • 100 3 2008 90
  • 100 4 2008 80

应该产生

  • 100 1 2008 2 2008 80
  • 100 3 2008 3 2008 90
  • 100 4 2008 4 2008 80

当值返回到原始值时,以下查询适用于除此特殊情况之外的所有内容.

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

sql oracle

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

sql ×2

oracle ×1

unit-testing ×1