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

如何验证按Customer_ID分组后最大Acct_No对应Token最大值是否小于其他Acct_No的Token最大值

实现方案

我们可以分三步实现需求查询:

  1. 按Customer_ID和Acct_No分组,计算每个客户下每个账户对应的最大Token值
  2. 提取每个客户的最大Acct_No,以及该最大账户对应的最大Token值
  3. 比对客户下其他所有账户的最大Token,只要存在任意其他账户的最大Token大于最大账户的最大Token,就返回对应符合条件的原始记录

样例数据表

Token | Acct_No | Customer_ID
|:----|:-------:|----------:
10    | 1       | ABC
7     | 2       | ABC
6     | 3       | ABC
12    | 4       | ABC
11    | 1       | ABC
8     | 1       | ABC
15    | 4       | ABC
16    | 3       | ABC
10    | 2       | CDA

通用标准SQL查询代码

WITH acct_max_token AS (
    -- 计算每个客户每个账户的最大Token
    SELECT 
        Customer_ID,
        Acct_No,
        MAX(Token) AS max_token_per_acct
    FROM your_table_name
    GROUP BY Customer_ID, Acct_No
),
cust_max_acct_info AS (
    -- 计算每个客户的最大账户号,以及该账户对应的最大Token
    SELECT 
        a.Customer_ID,
        b.max_acct_no,
        MAX(CASE WHEN a.Acct_No = b.max_acct_no THEN a.max_token_per_acct END) AS max_acct_token
    FROM acct_max_token a
    INNER JOIN (
        SELECT Customer_ID, MAX(Acct_No) AS max_acct_no
        FROM acct_max_token
        GROUP BY Customer_ID
    ) b ON a.Customer_ID = b.Customer_ID
    GROUP BY a.Customer_ID, b.max_acct_no
)
-- 匹配符合条件的原始记录
SELECT t.*
FROM your_table_name t
INNER JOIN acct_max_token a 
    ON t.Customer_ID = a.Customer_ID 
    AND t.Acct_No = a.Acct_No
INNER JOIN cust_max_acct_info c 
    ON t.Customer_ID = c.Customer_ID
WHERE 
    t.Acct_No != c.max_acct_no
    AND a.max_token_per_acct > c.max_acct_token;

注意将代码中的your_table_name替换为实际使用的表名即可。


结果验证

针对你提供的样例数据,执行上述查询后返回结果如下,和你给出的预期匹配:

Token | Acct_No | Customer_ID
16    | 3       | ABC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:57:02