我有这个查询来获取特定列中不同值的百分比:
select dma, count(*) / const.cnt *100 as my_percent
from full_db3 cross join
(select count(*) as cnt from full_db3) const
group by dma
order by my_percent desc limit 10;
第一步:我需要对此进行修改,以便根据另一列的值为我提供dma
列中的前10个值。例如,如果列gender
中的值为“f”,则列dma
中的前10个值是多少。这样的事情(当然不起作用)。
select dma, count(*) where gender = 'female' / const.cnt *100 as my_percent
from full_db3 cross join
(select count(*) as cnt from full_db3) const
group by dma
order by my_percent desc limit 10;
上面引发了一个错误,但应该明白这一点。
第2步将遍历我的所有列并返回每列中的前10个值(不只是dma
)给出特定列的值(例如,gender
='女性') 。最好的方法是什么?