计算百分比是SQL中常见的需求之一。下面是SQL计算百分比的完整攻略及两条实例:
1. 计算百分比
计算百分比有两种方式:计算一个值占总体的百分比,或者计算两个值之间的百分比差异。
计算一个值占总体的百分比
假设有表orders
,其中有amount
字段表示订单金额。要计算每个订单金额占所有订单金额的百分比:
SELECT amount/SUM(amount)*100 AS pct FROM orders;
这条语句使用了聚合函数SUM()
计算所有订单金额的总和,然后用每个订单金额除以总和,并乘以100算出百分比。
计算两个值之间的百分比
假设有表sales
,其中有两个字段year_2018
和year_2019
分别表示2018年和2019年的销售额。要计算2019年销售额增长的百分比:
SELECT (year_2019-year_2018)/year_2018*100 AS pct_growth FROM sales;
这条语句计算了2019年销售额与2018年销售额的差异,然后用2018年销售额除以差异,并乘以100算出百分比。
2. 实例
接下来,我们来看两个实例。
实例1:计算商品销售额占比
假设有表orders
,其中有字段product_id
表示商品ID,amount
表示销售金额。要计算每个商品销售额占所有商品销售额的百分比:
SELECT product_id, amount/SUM(amount) OVER() * 100 AS pct
FROM orders
ORDER BY pct DESC;
这条语句使用了窗口函数SUM() OVER()
计算所有销售额的总和,然后用每个商品销售额除以总和,并乘以100算出百分比。最后按百分比降序排序输出。
实例2:计算2019年销售额增长的百分比
假设有表sales
,其中有字段year_2018
和year_2019
分别表示2018年和2019年的销售额。要计算2019年销售额增长的百分比:
SELECT (year_2019-year_2018)/year_2018*100 AS pct_growth
FROM sales
WHERE year_2018 > 0 AND year_2019 > 0;
这条语句计算了2019年销售额与2018年销售额的差异,然后用2018年销售额除以差异,并乘以100算出百分比。最后筛选掉销售额为0的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL 计算百分比 - Python技术站