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

SQL中如何比较同表内user_id对应的多个order_id值并做聚合处理

实现SQL语句

你可以使用分组聚合+条件判断的逻辑实现,兼容MySQL、PostgreSQL、SQL Server等绝大多数主流数据库:

SELECT 
  user_id,
  CASE 
    WHEN COUNT(DISTINCT order_id) > 1 THEN '00000'
    ELSE MAX(order_id)
  END AS order_id
FROM Orders
GROUP BY user_id;

逻辑说明

  • 按照user_id分组,保证每个用户最终仅返回1条记录,满足去重要求
  • 用COUNT(DISTINCT order_id)统计每个用户对应的唯一订单号数量:
    • 数量大于1时,直接返回预设默认值'00000'
    • 数量等于1时,MAX(order_id)会取出唯一的订单号(此处替换为MIN(order_id)效果完全一致)

上述语句执行结果和你给出的期望输出完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:15:03