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

MySQL按DB聚合提取用户总数超工单量的记录需求

解决思路与SQL实现

核心逻辑拆解

要实现需求,分两步执行即可:

  1. 筛选符合条件的DB:统计每个DB的用户总数,同时获取该DB对应的工单量(根据数据特征,同一DB的工单量一致,用聚合函数取值即可),筛选出用户总数大于工单量的DB。
  2. 关联原表获取目标记录:将原表与筛选出的DB统计结果关联,取出这些DB的所有记录,并附带该DB的总用户数。

具体SQL代码

方法一:使用CTE(可读性更强)

WITH db_stats AS (
    SELECT 
        DB,
        SUM(USERS) AS TOTAL_USERS,
        MAX(TICKETS) AS DB_TICKETS
    FROM APP_CONNECTIONS
    GROUP BY DB
    HAVING SUM(USERS) > DB_TICKETS
)
SELECT 
    ac.DB,
    ac.APP_NAME,
    ac.USERS,
    ac.TICKETS,
    ds.TOTAL_USERS
FROM APP_CONNECTIONS ac
JOIN db_stats ds ON ac.DB = ds.DB
ORDER BY ac.DB, ac.APP_NAME;

方法二:使用子查询

SELECT 
    ac.DB,
    ac.APP_NAME,
    ac.USERS,
    ac.TICKETS,
    ds.TOTAL_USERS
FROM APP_CONNECTIONS ac
INNER JOIN (
    SELECT 
        DB,
        SUM(USERS) AS TOTAL_USERS
    FROM APP_CONNECTIONS
    GROUP BY DB
    HAVING SUM(USERS) > (SELECT TICKETS FROM APP_CONNECTIONS WHERE DB = APP_CONNECTIONS.DB LIMIT 1)
) ds ON ac.DB = ds.DB
ORDER BY ac.DB, ac.APP_NAME;

补充说明

  • 代码基于「同一DB的TICKETS值统一」的前提设计;如果存在同一DB对应不同工单量的场景,需调整筛选逻辑(比如判断总用户数大于每条记录自身的工单量)。
  • 最终结果按DB和APP_NAME排序,与示例输出格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:30:52