【问题标题】:how to select two max function in oracleoracle中如何选择两个max函数
【发布时间】:2015-01-10 02:11:12
【问题描述】:

我需要从这里的两个表中选择最大值。我怎样才能做到这一点?这是我的预言机代码:

select t_order_demand.customer_name,
max(t_order_log.seq) as "seq",
max(t_order_log.extern_order_status) as "extern"
from t_order_demand,t_order_log
where t_order_demand.order_id=t_order_log.order_id
and t_order_demand.order_id like '%88%'
group by t_order_log.seq,t_order_log.extern_order_status,t_order_demand.customer_name;

结果是有两个客户名称,seq 列是 1,并且有两个 extern 0 和 2。我只希望他们显示 1 个客户名称、1 个最大 seq 和 1 个最大 extern。但是怎么做?请帮帮我。

【问题讨论】:

    标签: oracle select max


    【解决方案1】:

    您需要从GROUP BY 中删除 seq, extern_order 也将其更改为使用显式连接

        select t_order_demand.customer_name,
        max(t_order_log.seq) as "seq",
        max(t_order_log.extern_order_status) as "extern"
        from t_order_demand
        JOIN t_order_log
        ON t_order_demand.order_id=t_order_log.order_id
        and t_order_demand.order_id like '%88%'
        group by t_order_demand.customer_name
    

    如果您只希望这组客户中有一个客户

    SELECT * FROM  (
      select t_order_demand.customer_name,
      max(t_order_log.seq) as "seq",
      max(t_order_log.extern_order_status) as "extern"
      from t_order_demand
      JOIN t_order_log
      ON t_order_demand.order_id=t_order_log.order_id
      and t_order_demand.order_id like '%88%'
      group by t_order_demand.customer_name 
    ) WHERE ROW_NUM =1
    

    【讨论】:

    • @NikeAngreni,您使用的是第二个查询吗?我也没有明白你的意思,你能举个例子吗?
    • 不,您的查询有效.. 只是我错了,在我看到 customer_name 的记录后,有记录 '3'。抱歉我的错误@RADAR
    猜你喜欢
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多