从我的数据库。
select genre,count(*) from titles group by genre order by count desc;
genre | count
-----------------+-------
Drama | 529
Comic | 393
Martial arts | 276
History | 269
Action | 237
我的问题是:如何获得百分比?
我想要这样的东西
select ??????;
genre | percentage
-----------------+-------
Drama | 30%
Comic | 20%
Martial arts | 20%
History | 15%
Action | 11%
Other | 4%
在询问之前,我已经尝试了很多从gogle和stackexchange获取的代码,正如您从psql历史中看到的那样
但所有的失败都是错误的或非常奇怪的结果。
SELECT
title,
ROUND( AVG( genre ), 2 ) percentage
FROM
titles
INNER JOIN genre
USING(id_genre)
GROUP BY
title
ORDER BY
genre DESC;
select title, round ( AVG( genre ), 2 ) percentage from titles;
SELECT round((count(genre) *100)::numeric / NULLIF(count(*), 0), 2) AS percentage;