我在以下查询中得到以下结果:
select
count(CASE WHEN u.terms='A' AND u.space='R' THEN 1 END) as yes_count,
count(CASE WHEN u.terms='C' AND u.space='R' THEN 1 END) as no_count,
c.col1,c.col2
from schema1.table1 as u, schema1.table2 cu,schema1.table3 c
WHERE cu.created_date > now()- interval '5 days'
AND cu.tale2id=u.table2id
AND cu.oneid=c.oneid
Group by c.col2,c.col1;
结果
yes_count | no_count | col1 | col2
23444 | 456 | sdfd | 90
4444 | 456 |ghj |34
现在我需要编写另一个查询来计算proportion
提供的no_count
。以下是我试图做同样的查询:
select yes_count, no_count
, count(no_count*100)/yes_count) as proportion of no_count
where col1 ='fgh' and col2= 34;
我无法正确地解决这个问题,我在这里做错了什么?
答案 0 :(得分:0)
查询将计算
no_count
提供的比例。
SELECT *, no_count / (no_count + yes_count) AS no_count_ratio
FROM (
SELECT c.col1,c.col2
, count(u.terms='A' AND u.space='R' OR NULL) AS yes_count
, count(u.terms='C' AND u.space='R' OR NULL) AS no_count
FROM schema1.table1 u
JOIN schema1.table2 cu USING (tale2id)
JOIN schema1.table3 c USING (oneid)
WHERE cu.created_date > now() - interval '5 days'
GROUP BY 1,2
) sub;
WHERE .... -- to select specific rows ...
假设总数包含“是”而没有“且没有其他选项。”
如果你想要“百分比”乘以100
我将您的主查询放入子查询中以使其更容易,简化语法,但没有改变任何东西。仅将no_count_ratio
添加到外部查询。