这里是我的问题:我有一个包含某些记录的表(如名称,日期,类型)。假设我有三种类型a,b和c。现在我想计算每种类型的百分比意味着COUNT(类型)/ COUNT(表行数)??
select type,COUNT(type) as counttype,counttype/(select COUNT(*) from xyz) from xyz group by xyz;
“(从xyz中选择COUNT(*))”这给了我错误。 如何查找表Row Count?
答案 0 :(得分:0)
从中选择A.type,A.type_cnt,(A.type_cnt / B.total_cnt) (按类型从xyz组中选择类型,计数(类型)为type_cnt)A 加入 (从xyz中选择count(*)为total_cnt)B ON 1 = 1;
答案 1 :(得分:0)
如果没有JOIN,使用分析函数会更快:
select type,
count(type) as type_cnt,
count(type)/count(*) over() as pct
from xyz
group by type;