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

关联charging与taxes表查询重复字段及双最大值的SQL需求

解决思路与SQL示例

没问题呀,刚接触数据库有疑问太正常了~我来帮你梳理这个查询需求,一步步实现你要的结果:

首先,你的核心需求可以拆成两部分:

  • 找出charging表中**invoiceNumber和sequentialInvoice组合重复**的所有记录(也就是这两个字段值同时出现多次的场景)
  • 同时获取这两个字段的最大值(这里分两种常见场景,我都给你写出来)

情况1:获取每个重复组合内的最大值(组内字段值一致,最大值即本身)

这个场景下,我们先找出重复的字段组合,再关联回原表和taxes表,同时标记每组的最大值:

-- 用子查询筛选重复的字段组合,再关联获取所有关联数据
SELECT 
    c.invoiceNumber,
    c.sequentialInvoice,
    t.sequentialObligation,
    t.sequentialTax,
    t.reference,
    -- 每个重复组内的invoiceNumber最大值(和组内值一致)
    MAX(c.invoiceNumber) OVER (PARTITION BY c.invoiceNumber, c.sequentialInvoice) AS group_max_invoice,
    -- 每个重复组内的sequentialInvoice最大值(和组内值一致)
    MAX(c.sequentialInvoice) OVER (PARTITION BY c.invoiceNumber, c.sequentialInvoice) AS group_max_sequential
FROM charging c
-- 通过invoiceNumber关联taxes表
JOIN taxes t ON c.invoiceNumber = t.reference
-- 只保留属于重复组合的记录
WHERE (c.invoiceNumber, c.sequentialInvoice) IN (
    SELECT invoiceNumber, sequentialInvoice
    FROM charging
    GROUP BY invoiceNumber, sequentialInvoice
    -- 筛选出现次数>1的重复组合
    HAVING COUNT(*) > 1
);

情况2:获取所有重复组合中的全局最大值

如果你需要的是所有重复场景里,invoiceNumber的最大值和sequentialInvoice的最大值,可以用CTE先缓存重复组合,再计算全局最大值:

WITH duplicate_pairs AS (
    -- 先找出所有重复的字段组合
    SELECT invoiceNumber, sequentialInvoice
    FROM charging
    GROUP BY invoiceNumber, sequentialInvoice
    HAVING COUNT(*) > 1
)
SELECT 
    c.invoiceNumber,
    c.sequentialInvoice,
    t.sequentialObligation,
    t.sequentialTax,
    t.reference,
    -- 所有重复组合中的invoiceNumber最大值
    (SELECT MAX(invoiceNumber) FROM duplicate_pairs) AS global_max_invoice,
    -- 所有重复组合中的sequentialInvoice最大值
    (SELECT MAX(sequentialInvoice) FROM duplicate_pairs) AS global_max_sequential
FROM charging c
JOIN taxes t ON c.invoiceNumber = t.reference
WHERE (c.invoiceNumber, c.sequentialInvoice) IN (SELECT * FROM duplicate_pairs);

补充说明

如果你的“最大值”是指其他字段(比如charging表中的金额、日期等),只需要把MAX()里的字段替换成你需要的字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:16:05