mysql 8.0版
嗨,假设我有一张这样的表:这是我在groupby count操作后得到的:
select number
, count(number) as `count`
FROM (select *
, CASE
WHEN column = 0 Then 0 Else 1
END AS number
FROM table) t1;
导致:
number count
0 100
1 900
现在我要为每个数字添加一列,给出相应的百分比。
渴望的:
number count percentage
0 100 10
1 900 90
提前谢谢!
2条答案
按热度按时间q5iwbnjs1#
如果您运行的是mysql 8.0,则可以使用窗口函数:
在早期版本中,选项使用子查询:
这给你一个
0
以及1
; 你可以把它乘以100
如果你想要一个百分比。请注意,如果您是从查询中获取原始结果集,则很可能可以对其进行进一步优化。您可能想问一个新问题,公开原始表和查询。
0ve6wy6x2#
就您最初的查询而言,它类似于:
如果你想要的是百分比而不是比率,而不是乘以100。