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

SQL技术求助:计算线上与POS销售占比拆分

SQL技术支持:计算线上与POS销售占比拆分

需要从performancesales表中计算线上销售(ONLINE)与POS销售的占比拆分,已编写基础查询语句并得到部分结果,但不知道如何添加占比列——该列需按公式(POS/(POS+ONLINE))*100和(ONLINE/(POS+ONLINE))*100计算。

初始查询语句

SELECT
CASE
    WHEN saleschannel = 1 THEN 'ONLINE'
    WHEN saleschannel = 6 THEN 'ONLINE'
    WHEN saleschannel = 7 THEN 'ONLINE'
    WHEN saleschannel = 8 THEN 'ONLINE'
    ELSE 'POS'
END AS CHANNEL, 
COUNT(*) AS TICKET_QTY
FROM performancesales 
WHERE salesdate BETWEEN '2022-08-01' AND '2023-01-31'
AND saleschannel IN ('1','6', '7', '8', '14')
GROUP BY CHANNEL 
ORDER BY 2;

感谢Aaron提供的正确查询思路,已改写代码提升执行效率,最终代码如下:

优化后最终查询语句

SELECT
    channel,
    COUNT(*) AS ticket_qty,
    CAST(100.0 * COUNT(*) / SUM(COUNT(*)) OVER() AS DECIMAL(10,2)) AS percentage_split
FROM (
    SELECT 
        CASE 
            WHEN saleschannel IN ('2','5','7') THEN 'ONLINE'
            WHEN saleschannel IN ('0','1','4','6','8') THEN 'POS'
            ELSE 'OTHER - (AGGREGATOR)'
        END AS channel, 
        1 AS ticket
    FROM performancesales 
    WHERE 
        salesdate BETWEEN '2022-08-01' AND '2023-01-31' 
        AND saleschannel IN ('0','1','2','3','4','5','6','7','8')
) t
GROUP BY channel;

内容的提问来源于stack exchange,提问作者Henry Okwuenu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:40:58