You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DAX计算Top5城市的企业占比及其他城市汇总占比?

计算Top5城市企业占比及其余城市汇总占比

假设你的数据表名为firms,包含firm_name(企业名称)和city(城市)两个字段,以下SQL语句可实现需求:

WITH city_firm_counts AS (
    -- 统计各城市企业数及总企业数
    SELECT
        city,
        COUNT(firm_name) AS firm_count,
        SUM(COUNT(firm_name)) OVER () AS total_firms
    FROM firms
    GROUP BY city
),
city_ranked AS (
    -- 计算城市企业占比并按企业数降序排名
    SELECT
        city,
        ROUND((firm_count::FLOAT / total_firms) * 100, 0) AS firms_percent,
        ROW_NUMBER() OVER (ORDER BY firm_count DESC) AS rank
    FROM city_firm_counts
)
-- 合并排名5以外的城市为others,汇总占比并排序
SELECT
    CASE WHEN rank <= 5 THEN city ELSE 'others' END AS city,
    SUM(firms_percent) AS "firms %"
FROM city_ranked
GROUP BY CASE WHEN rank <= 5 THEN city ELSE 'others' END
ORDER BY
    CASE WHEN city = 'others' THEN 6 ELSE rank END;

逻辑说明

  1. city_firm_counts CTE:统计每个城市的企业数量,同时用窗口函数计算全表企业总数。
  2. city_ranked CTE:基于前序结果计算各城市企业占比(保留整数),并按企业数量对城市降序排名。
  3. 最终查询:保留排名前5的城市名称,其余城市合并为others并汇总占比,最后按排名排序(others排在末尾)。

示例结果

cityfirms %
ny25
ca20
fl15
az12
others28

内容的提问来源于stack exchange,提问作者ZO-1907

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:45:49