如何“子类化”PSQL查询以提高性能/提高可读性?

时间:2018-04-11 05:03:46

标签: sql postgresql aggregate-functions

目前,我需要使用

模板运行多个查询
SELECT SUM(quantity) 
FROM inventory_item
WHERE instance_type = (sell/buy)

现在我必须运行5次,每次instance_type一次出售/购买。

有没有办法压缩它,以便我可以获得所有结果一次而无需运行多个查询?基本上它看起来像

SELECT SUM(a.quantity) AS sell, SUM(b.quantity) AS buy
FROM inventory_item a, b
WHERE a.instance_type = 'sell'
WHERE b.instance_type = 'buy'

1 个答案:

答案 0 :(得分:1)

您应该使用GROUP BY查询:

SELECT instance_type, SUM(a.quantity) AS quantity
FROM inventory_item a GROUP BY instance_type;

这将返回如下结果:

instance_type | quantity
-------------------------
sell          | 250.0
buy           | 128.5