我有一个查询将同一个表中的两个值相加,然后计算一个作为另一个的百分比
select account_no,
100*((sum(COMMISSION/100)) / (SUM(AMOUNT/100)))
from accounts etc
Run Code Online (Sandbox Code Playgroud)
我想要做的只是返回该值大于一定数量的结果(在本例中为 4)。如果我在 where 子句中添加一些内容,例如:
where 100*((sum(COMMISSION/100)) / (SUM(AMOUNT/100))) > 4
Run Code Online (Sandbox Code Playgroud)
我收到错误:
聚合可能不会出现在 WHERE 子句中...
我希望有一种简单的方法可以解决这个问题,但我还没有学到。有任何想法吗?
尝试:
HAVING 100*((sum(COMMISSION/100)) / (SUM(AMOUNT/100))) > 4
Run Code Online (Sandbox Code Playgroud)
但是,您仍然可能会发现整数数学会阻止您获得想要的结果。所以这可能会更好:
HAVING 100*((1.0*sum(COMMISSION/100)) / (1.0*SUM(AMOUNT/100))) > 4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
472 次 |
最近记录: |