我有两个表格,项目和类别,示例数据如下:
Items:
Title category_id
Item A 1
Item B 2
Item C 3
Item D 2
Item E 3
Item F 2
Categories
category_id category
1 wood
2 plastic
3 metal
我需要做的是计算项目总数,然后列出每个类别中有多少个以及占总数的百分比
我知道我可以计算每个项目和总数,例如
select
count(*) as total,
sum(category_id=1) as cat_1,
sum(category_id=2
.... etc etc
但是有没有办法在不计算每一个的情况下完成这一切(可能添加了新的类别并希望它继续工作),然后加入类别表以产生名称?
理想情况下,这是我想要返回的:
Category how many % of total
wood 1 17%
plastic 3 50%
metal 2 33%
Total 6 100%
(17% 是 1/6 => 16.666666667% 四舍五入)。