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

如何合并MySQL查询:同时获取项目总数与订阅者总订阅额

合并无关联表的统计查询

由于两张表没有关联关系,我们可以通过标量子查询或**交叉连接(CROSS JOIN)**将项目总数与订阅者的金额统计结果合并到同一份查询中,以下是两种可行方案:

方案1:使用标量子查询(简洁写法)

直接在SELECT列表中嵌入项目总数的统计子查询,每一行订阅者数据都会带上固定的项目总数:

SELECT 
    COD_ASSINANTE,
    SUM(VALOR_TOTAL_ASSIN) AS VLR_TOT,
    (SELECT COUNT(COD_PROJETO) FROM DIM_PROJETOS) AS QTD_PROJETOS
FROM TAB_ASSINATURAS
GROUP BY COD_ASSINANTE;

方案2:使用交叉连接(逻辑清晰写法)

先分别生成两个独立的统计结果集,再通过交叉连接合并:

SELECT 
    ta.COD_ASSINANTE,
    ta.VLR_TOT,
    dp.QTD_PROJETOS
FROM (
    -- 先统计每个订阅者的总金额
    SELECT COD_ASSINANTE, SUM(VALOR_TOTAL_ASSIN) AS VLR_TOT
    FROM TAB_ASSINATURAS
    GROUP BY COD_ASSINANTE
) ta
-- 交叉连接项目总数的统计结果
CROSS JOIN (
    SELECT COUNT(COD_PROJETO) AS QTD_PROJETOS
    FROM DIM_PROJETOS
) dp;

测试结果验证

用你提供的示例数据执行上述查询,会得到如下结果:

COD_ASSINANTEVLR_TOTQTD_PROJETOS
1001519.586
1002593.326
1003508.676
10042166

方案说明

  • 标量子查询写法更紧凑,MySQL会自动优化这个固定值的子查询,实际仅执行一次。
  • 交叉连接写法逻辑更直观,适合后续需要添加更多独立统计维度的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:31:01