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

如何选取两列及同一客户对应的最大决策编号(DNO)?

嘿,这两个都是SQL日常开发里很常见的需求,我来给你详细拆解下解决方案:

问题1:从两个不同列中选取最大的决策编号

要从同一行的两个不同列里取最大值,最直接的方式是用SQL内置的GREATEST()函数,它可以接收多个参数,返回其中的最大值。

举个例子,假设你的表名为decision_records,包含dno_col1和dno_col2两个存储决策编号的列,查询语句如下:

SELECT 
  GREATEST(dno_col1, dno_col2) AS max_decision_no
FROM decision_records;

需要注意的是,如果某一列存在NULL值,GREATEST()会直接返回NULL。如果想忽略NULL(比如把NULL当作0处理),可以搭配COALESCE()函数:

SELECT 
  GREATEST(COALESCE(dno_col1, 0), COALESCE(dno_col2, 0)) AS max_decision_no
FROM decision_records;

要是你用的是SQL Server这类不支持GREATEST()的数据库,也可以用CASE WHEN语句来实现:

SELECT 
  CASE 
    WHEN dno_col1 > dno_col2 THEN dno_col1
    ELSE dno_col2
  END AS max_decision_no
FROM decision_records;
问题2:按客户分组选取最大决策编号

这个需求属于分组聚合场景,我们可以用GROUP BY对客户编号(CNO)分组,再用MAX()函数提取每组里的最大决策编号(DNO)。

假设你的表名为customer_decisions,对应你给出的样本数据,查询语句是:

SELECT 
  CNO,
  MAX(DNO) AS max_decision_no
FROM customer_decisions
GROUP BY CNO;

执行后会得到结果:

CNOmax_decision_no
12
33

完全符合你要的同一客户取最大DNO的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:18:36