我需要一个查询的Oracle SQL,如果商的除法(计数(prod_low)/计数(prod_total))小于0.005显示此商;在另一种情况下,给出了该操作的被除数(prod_low)的一部分的特定情况。
如果在这两种情况下都显示列表prod_low,并且在每一行中显示上面提到的除法的百分比,那么这也是值得的。如果不行的话,就用一个短语来代替百分比:>= 0.5%'或'无警报:基于计算的商,每条线<0.5%。
感谢您的评分
SELECT CASE
WHEN (COUNT (prod_low) / COUNT (prod_total)) > 0.005 THEN (COUNT (prod_low) / COUNT (prod_total))
ELSE prod_low
END
FROM(
SELECT DISTINCT p1.prods AS prod_total, prod_low
FROM products p1
LEFT JOIN(SELECT DISTINCT p2.prods AS prod_low, p2.id AS id2
FROM products p2
WHERE p2.price < 10)
ON p1.id = id2)
2条答案
按热度按时间ctzwtxfj1#
试试这个
此查询使用WITH子句计算prod_total和prod_low计数,然后计算每行的百分比和警报状态。
请注意,我假设prod_low和prod_total分别基于价格小于10的产品数量和产品总数。如果您想根据其他条件进行筛选,可以相应地修改COUNT(CASE...)行。
ttp71kqs2#
您还没有给出任何示例数据或预期输出,但是您可以使用条件聚合在没有任何自联接的情况下获得输出。如果你想的话
或: