我正在进行查询并需要一些帮助。
以下是查询的一部分:
AND count_sub>2 AND count_del<=2
我想要做的是,在此查询中选择2个变量,并且count_sub
大于5+count_del
继续。
示例:
count_sub = 10
count_del = 4
差异为6因此会返回结果,但如果:
count_sub = 4
count_del = 1
差异是3,不会返回任何内容
由于
答案 0 :(得分:0)
您可以查询差异:
WHERE count_sub - count_del > 5
答案 1 :(得分:0)
我会推荐以下解决方案:
SELECT a.id
FROM tbl1 a
INNER JOIN (SELECT id, count_sub - count_del AS diff FROM tbl1) b ON b.id = a.id
WHERE b.diff > 5
通过在WHERE
子句(WHERE count_sub - count_del > 5
)中使用算术,可以防止优化器使用列上的索引。一般规则是尽可能远离WHERE
子句移动算法。将算术移动到派生表到派生列的效率更高。