SQL中如何用最简方式从生成查询结果筛选占比近似1:1的实例
最简过滤实现方案
- 完全不需要改动你现有计算百分比、提升度的核心逻辑,只需要在原有查询的结果输出前,增加1行过滤条件就能实现需求
- 写过滤条件时注意规避
perc_libs = 0带来的除零报错,直接用以下判断逻辑即可:perc_con / NULLIF(perc_libs, 0) BETWEEN 0.8 AND 1.2 - 用
NULLIF将分母为0的场景转成空值,这类记录会被自动过滤,不会触发查询错误
可直接套用的代码结构:
-- 你原本计算perc_con、perc_libs、lift的代码全部保留不动,仅在最后追加过滤条件 SELECT * FROM 你现有跑完所有字段计算的结果集(子查询/临时表) WHERE perc_con / NULLIF(perc_libs, 0) BETWEEN 0.8 AND 1.2;
注意:这个写法没有复杂嵌套,可读性最高,完全匹配你“保留两个值比例在0.8~1.2区间(近似1:1)”的筛选要求。
内容的提问来源于stack exchange,提问作者DAG
相关产品推荐
相关产品推荐

