我有一个Product
模型,每个产品都有一个或多个Sku
s。每个sku都有shipping_price
和selling_price
。
我想通过他们的skus'来对产品进行分类。 shipping_price/selling_price
的最高或最低比率,但我无法正确查询。例如,对于"最低运费比率"现在我有:
SELECT
p.id,
p.title,
array_agg(s.shipping_price) as shipping_prices,
array_agg(s.baseline_price) as baseline_prices,
min(s.shipping_price/s.baseline_price) as shipping
FROM "Products" p
JOIN "Skus" s
ON p.id = s.product_id
WHERE p.category_id in (1,2,3)
GROUP BY p.id
ORDER BY shipping ASC
LIMIT 48
OFFSET 0;
但是这给shipping
提供了很多零,它们显然不是零。看起来我需要一些数组运算和min的组合,但我不确定如何组合方法HERE。
有直接的方法吗?
答案 0 :(得分:1)
看起来类型由min
保留,因此将整数除以另一个整数会将所有内容舍入为零。
解决方案是投两个:
min(s.shipping_price*1.0/s.baseline_price) as shipping