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

如何用SELECT获取首个匹配组合值为1其余同组合值为0的结果

解决方案:标记每组首个匹配组合为1,其余为0

假设你所说的“相同匹配组合”是指表中某几个字段的组合(比如field_a、field_b,请根据实际表结构替换为对应字段),可以通过窗口函数ROW_NUMBER()实现需求:

SELECT 
    *,
    CASE 
        WHEN ROW_NUMBER() OVER (PARTITION BY field_a, field_b ORDER BY (SELECT NULL)) = 1 THEN 1
        ELSE 0
    END AS is_first_match
FROM tableInfo;

关键说明:

  • PARTITION BY field_a, field_b:指定分组依据,将相同字段组合的行归为一组,替换成你实际用来判断“匹配组合”的字段即可。
  • ORDER BY (SELECT NULL):如果不需要按特定顺序选取首个匹配项,用此语法即可;若需要按某字段(如ID、创建时间)排序来确定首个,替换为实际字段,例如ORDER BY create_time ASC。
  • CASE逻辑:对每组内的第一行标记为1,其余行标记为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:16:58