美文网首页
防御性SQL

防御性SQL

作者: 天之見證 | 来源:发表于2024-02-27 19:43 被阅读0次

SQL中增加防御性

接到产品一个的临时跑数需求,如下:

近30天的uv

  1. a表中条件c1
  2. b表中条件c2
  3. c表中条件c3

以上业务虽然很简单,但是对于上述的3个表我个人其实不是很熟悉,我先确认了下上述3个表在各自的条件下是否是有数的,因为一旦有个别表在它的条件下没数据,其实我们是很难发现的。在我确认完3个条件没问题之后才开始写SQL,发现完全可以在SQL中对上述的问题进行规避,即我们不光算整体的uv,我们也顺便算一下3个表各自条件下的uv不就一并解决了吗?一唯的成本就是跑数据稍微花点时间。

我们得到了最终的防御性SQL如下:

select flag, count(distinct id) uv
from (
  select id
  from a
  where c1 and date >= ${date - 30} and date <= ${date - 1}

  union all

  select id
  from b
  where c2 and date >= ${date - 30} and date <= ${date - 1}

  union all

  select id
  from c
  where c3 and date >= ${date - 30} and date <= ${date - 1}

  union all
) as a
group by flag
with rollup

结果分析

  1. 如果发现有个别flag的值特别小,则可以看出来对应的查询条件一般是有问题的,需要再核查一下。
  2. 如果发现3种flag的数据差异不大,则可以确认对应的每种查询条件没有问题,数据是可以交付的。

相关文章

  • 防御式编程

    编写优秀的代码 代码是程序可识别的代码 代码是程序员可识别的代码 防御性编程 防御性编程(Defensive pr...

  • 防御性人格的恐怖战斗力

    我的防御性很重,不是类型,而是一种个性。 最近才意识到我的防御性。 以前潜意识里觉得会反省这样很好,但是,...

  • “防御性写作”的技巧

    对于做文字相关工作的人而言,“防御性写作”是不可或缺的技巧;不过通常这种技巧只能从实作和错误中学习。 所谓防御性写...

  • 防御性驾驶

    现在私家车越来越多,我们在开车时除了遵守交通规则,如果能掌握好防御性驾驶,更能保障自己的安全。 什么是防御性驾驶呢...

  • 成功:动机与目标2

    I:进取型目标和防御性目标 如果说目标感在实际事物的操作上,那么就会产生进取型目标和防御性目标,这两种目标感的主要...

  • 防御性思维

    10.11 自我防御,在意别人的看法,活在理想的世界里,不好的自我隔离、屏蔽,无法改变,把自己的问题包裹着,不愿展...

  • 防御性思维

    管理者要认识到进攻是最好的防御,如果只是一味的单纯的防御,结果就会导致无可挽回的失败。 不是成功必然会造就自信心,...

  • 防御性编程

    搜集了一些关于“防御性编程”资料,将其中一些思想备份下,学习 软件工程师的智慧,就是在于其是否开始意识到:使程序能...

  • 防御性驾驶

    防御性驾驶起源于20世纪50年代的美国,早先流行与英、美等国家,现广为世界各国所采用。成效显著。目前,我国防御性驾...

  • 防御性编程

    Steve McConnell的经典编程之书——《Code Complete》,用一个短篇解释了防御性编程的一些基...

网友评论

      本文标题:防御性SQL

      本文链接:https://www.haomeiwen.com/subject/iwqxzdtx.html