- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用一个经常使用的查询时遇到了一些性能问题。
SELECT
v.id,
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref in (1,3,4)), 0) "fv",
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref=2), 0) "ivo",
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref=5), 0) "iio",
coalesce((SELECT sum(amount * mvalue) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1), 0) "vw"
FROM productvariant v
由于 artjournal 是一个大表,每天都有数千条新记录,因此性能变得很糟糕。
我在所有 ID 字段上都有索引。
有没有办法重写这个语句来加快速度?或者我可以使用不同的方式从 artjournal 表中检索数据并在结果为 null 时返回 0 吗?
谢谢你的想法,
克里斯蒂安
最佳答案
看起来你想要一个过滤聚合:
SELECT v.id,
sum(case when a.atype_ref in (1,3,4) then a.amount else 0 end) as "fv",
sum(case when a.atype_ref = 2 then a.amount else 0 end) as "ivo",
sum(case when a.atype_ref = 5 then a.amount else 0 end) as "iio",
sum(a.amount * a.mvalue) as "vw"
FROM productvariant v
LEFT JOIN artjournal a ON a.variant_ref = v.id
WHERE storage_ref = 1
GROUP BY v.id;
关于sql - Firebird SQL : query slow due to coalesce or can it be rewritten,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34015007/
我想重写 http://example.com/assets/file.ext至 /sites/example.com/assets/file.ext仅当该重写路径存在时。我可以更广泛地这样做:
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我可以用SYB的gfoldl一次性对listify的结果进行映射吗? 例如考虑以下代码: extractNums :: Expr -> [Int] extractNums e = map numVal
我创建了一些单元测试并从同一个文件运行它们。对于同一文件中的测试: if __name__ == "__main__": import pytest pytest.main(['--t
我正在使用 http://urlrewriter.net/在我的网站上重写网址。例如,我正在重写: http://www.example.com/schedule.aspx?state=ca 到 ht
我在使用一个经常使用的查询时遇到了一些性能问题。 SELECT v.id, coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref
我正在重写 javascript 的核心方法之一: Element.prototype._removeChild = Element.prototype.removeChild; Element.pr
我正在一个网站上工作,该网站使用 IIS 7 的 URL 重写功能进行从 example.com 到 www.example.com 的永久重定向,以及从类似域名重写到“主”域名,例如从 www。 e
我是一名 Python 初学者并且有一个难题。当我写这样的代码时: lst = [1, 2, 3, 4] Pycharm 给我一个提示“这个列表创建可以重写为列表文字”。但是如果它被替换为 lst =
我是一名优秀的程序员,十分优秀!