占比组内占比

2023/12/27 doris 占比 组内占比 共 1354 字,约 4 分钟

以Doris数据库创表语句

占比和组内占比

占比

占比:占比是指某一部分在整体中所占的比例。

例如,如果你有一个产品销售数据表,你想知道每种产品的销售额占总销售额的比例,那么你就可以计算每种产品的销售额占比。

组内占比

组内占比:组内占比是指在某一组内,某一部分所占的比例。

例如,如果你想知道在每个地区,每种产品的销售额占该地区总销售额的比例,那么你就可以计算每种产品在其地区的销售额组内占比。

举例

一个名为sales的表,其中包含product(产品)、region(地区)和amount(销售额)列,

你想要计算每个产品的销售额占总销售额的比例(占比),以及每个产品在其地区的销售额占该地区总销售额的比例(组内占比)。

productregionamount
AEast100
BEast200
CEast300
AWest100
BWest200
CWest300
-- 创建sales表  
CREATE TABLE sales (  
    product VARCHAR(255),  
    region VARCHAR(255),  
    amount INT  
) ENGINE = OLAP  
    COMMENT "sales" DISTRIBUTED BY HASH(`product`) BUCKETS 3  
PROPERTIES (  
"replication_allocation" = "tag.location.default: 1",  
"is_being_synced" = "false",  
"storage_format" = "V2",  
"light_schema_change" = "true",  
"disable_auto_compaction" = "false",  
"enable_single_replica_compaction" = "false"  
);  
  
-- 插入数据  
INSERT INTO sales (product, region, amount) VALUES  
('A', 'East', 100),  
('B', 'East', 200),  
('C', 'East', 300),  
('A', 'West', 100),  
('B', 'West', 200),  
('C', 'West', 300);  

占比的计算方式是:某一部分的值除以整体的值。

例如,产品A的销售额占总销售额的比例(占比)是:100 ÷ 1200 = 8.33%。

组内占比的计算方式是:某一部分的值除以组内的值。

例如,产品A在东部地区的销售额占该地区总销售额的比例(组内占比)是:100 ÷ 600 = 16.67%。

SELECT product,  
       region,  
       amount,  
       (amount / SUM(amount) OVER ()) * 100                    AS product_sales_ratio,  
       (amount / SUM(amount) OVER (PARTITION BY region)) * 100 AS region_sales_ratio  
FROM sales  
order by product;  
productregionamountproduct_sales_ratioregion_sales_ratio
AEast1008.33%16.67%
BEast20016.67%33.34%
CEast30025.00%50.00%
AWest1008.33%16.67%
BWest20016.67%33.34%
CWest30025.00%50.00%

文档信息

Search

    Table of Contents