sql实现: 算出分层总数后算占比
时间: 2024-09-14 07:07:32 浏览: 40
在SQL中,计算分层总数并求得占比通常涉及到窗口函数(Window Functions)或者自连接(Self Join)。假设我们有一个名为`sales`的表,其中包含`product_layer`表示产品层次(例如:一级、二级、三级等)和`quantity`表示销售量。我们可以使用以下方法:
```sql
WITH sales_summary AS (
SELECT
product_layer,
SUM(quantity) as total_quantity
FROM
sales
GROUP BY
product_layer
)
SELECT
product_layer,
(total_quantity / (SELECT SUM(total_quantity) FROM sales_summary)) * 100 AS percentage
FROM
sales_summary
ORDER BY
product_layer;
```
首先,我们创建了一个`sales_summary`窗口函数,对每个层次的总销量进行了统计。然后,从这个临时结果集中选取每个层次的`total_quantity`,除以所有层次的总和(这是通过子查询获取的),再乘以100得到百分比。
阅读全文