关于多个MAX函数如何取同一行数据

dang971 2016-10-27 12:45:17
SELECT DISTINCT SBBH,CDBH MAX(IMGURL),MAX(SBMC) FROM TABLE GROUP BY SBBH,CDBH


各位大神问个问题,目前结果图片路径和设备名称结果不符
MAX(IMGURL),MAX(SBMC) 如何取到同一行的数据

...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dang971 2016-10-27
  • 打赏
  • 举报
回复
引用 1 楼 js14982 的回复:
取一行,你是要取MAX(IMGURL)还是MAX(SBMC),以哪个大为准呢?
不管哪个大 只要是一条记录里的 IMGURL 和 SBMC 就行 目前的执行结果 是, IMGURL,SBMC 不是一条记录里的
js14982 2016-10-27
  • 打赏
  • 举报
回复
取一行,你是要取MAX(IMGURL)还是MAX(SBMC),以哪个大为准呢?
dang971 2016-10-27
  • 打赏
  • 举报
回复
引用 6 楼 js14982 的回复:
select * from 
(SELECT distinct JGCL.SBBH, JGCL.CDBH, SBXX.SBMC,
                        JGCL.JLBH,
                        JGCL.HPHM,
                        JGCL.IMGURL,
                        JGCL.HPZL,
                        JGCL.JGSJ,
                        JGCL.CLSD,
                        JGCL.CWKC,
                        JGCL.HPYS,
                        JGCL.CLLX,
                        JGCL.JLLX,
                        JGCL.BZWZDM,
                        JGCL.FXBH,
                        JGCL.TPSL,
                        JGCL.SJLY,
                        JGCL.CCLX,
                        JGCL.CSYS,
                        JGCL.JLLB,
                        JGCL.CSBJ,
                        JGCL.YZYS
                        row_number()over(partition by JGCL.SBBH, JGCL.CDBH, SBXX.SBMC order by JGCL.JLBH desc,JGCL.HPHM desc,JGCL.IMGURL desc,JGCL.HPZL desc) rn
          FROM b_bk_jgcl JGCL
           left join B_SSSB_SBXX sbxx
           on JGCL.SBBH= SBXX.SBBH
           WHERE 1 = 1
           AND jgsj >= to_date('2016-10-26 16:15:00', 'yyyy-mm-dd hh24:mi:ss')
           AND jgsj < to_date('2016-10-26 16:25:00', 'yyyy-mm-dd hh24:mi:ss')
) where rn=1
;
大概这个样子,可能你的语句还是不全。 row_number()over(partition by JGCL.SBBH, JGCL.CDBH, SBXX.SBMC order by JGCL.JLBH desc,JGCL.HPHM desc,JGCL.IMGURL desc,JGCL.HPZL desc) 后面的排序我也没排完,你自己加吧(不加也可以执行)
太强了 万分感谢
js14982 2016-10-27
  • 打赏
  • 举报
回复
select * from 
(SELECT distinct JGCL.SBBH, JGCL.CDBH, SBXX.SBMC,
                        JGCL.JLBH,
                        JGCL.HPHM,
                        JGCL.IMGURL,
                        JGCL.HPZL,
                        JGCL.JGSJ,
                        JGCL.CLSD,
                        JGCL.CWKC,
                        JGCL.HPYS,
                        JGCL.CLLX,
                        JGCL.JLLX,
                        JGCL.BZWZDM,
                        JGCL.FXBH,
                        JGCL.TPSL,
                        JGCL.SJLY,
                        JGCL.CCLX,
                        JGCL.CSYS,
                        JGCL.JLLB,
                        JGCL.CSBJ,
                        JGCL.YZYS
                        row_number()over(partition by JGCL.SBBH, JGCL.CDBH, SBXX.SBMC order by JGCL.JLBH desc,JGCL.HPHM desc,JGCL.IMGURL desc,JGCL.HPZL desc) rn
          FROM b_bk_jgcl JGCL
           left join B_SSSB_SBXX sbxx
           on JGCL.SBBH= SBXX.SBBH
           WHERE 1 = 1
           AND jgsj >= to_date('2016-10-26 16:15:00', 'yyyy-mm-dd hh24:mi:ss')
           AND jgsj < to_date('2016-10-26 16:25:00', 'yyyy-mm-dd hh24:mi:ss')
) where rn=1
;
大概这个样子,可能你的语句还是不全。 row_number()over(partition by JGCL.SBBH, JGCL.CDBH, SBXX.SBMC order by JGCL.JLBH desc,JGCL.HPHM desc,JGCL.IMGURL desc,JGCL.HPZL desc) 后面的排序我也没排完,你自己加吧(不加也可以执行)
js14982 2016-10-27
  • 打赏
  • 举报
回复
这么多max,你是要所有的都为一行数据的值,还是就那2个字段为一行? row_number()over(partition by SBBH,CDBH order by IMGURL desc,SBMC desc) rn ,rn列在这,是用row_number虚拟出来的一列
dang971 2016-10-27
  • 打赏
  • 举报
回复
引用 3 楼 js14982 的回复:
select SBBH,CDBH,IMGURL,SBMC from 
(SELECT SBBH,CDBH,IMGURL,SBMC,row_number()over(partition by SBBH,CDBH order by IMGURL desc,SBMC desc) rn FROM TABLE )
where rn=1;
大兄弟 你最后这个RN=1 是什么意思, 按照你这个写法执行出来的结果 条数多了 我的SQL 原句是这样的 在过车记录表里取一段时间内 每个设备,车道 一张图片
SELECT distinct JGCL.SBBH, JGCL.CDBH, SBXX.SBMC,
                        MAX(JGCL.JLBH) as "jlbh",

                        MAX(JGCL.HPHM) as "hphm",
                        MAX(JGCL.IMGURL) as "IMGURL",

			MAX(JGCL.HPZL) as "hpzl",
                        MAX(JGCL.JGSJ) as "jgsj",
                        MAX(JGCL.CLSD) as "clsd",
                        MAX(JGCL.CWKC) as "cwkc",
                        MAX(JGCL.HPYS) as "hpys",
                        MAX(JGCL.CLLX) as "cllx",
                        MAX(JGCL.JLLX) as "jllx",
                        MAX(JGCL.BZWZDM) as "bzwzdm",
                        MAX(JGCL.FXBH) as "fxbh",
                        MAX(JGCL.TPSL) as "tpsl",
                        MAX(JGCL.SJLY) as "sjly",
                        MAX(JGCL.CCLX) as "cclx",
                        MAX(JGCL.CSYS) as "csys",
                        MAX(JGCL.JLLB) as "jllb",
                        MAX(JGCL.CSBJ) as "csbj",
                        MAX(JGCL.YZYS) as "yzys",
          FROM b_bk_jgcl JGCL
           left join B_SSSB_SBXX sbxx
           on JGCL.SBBH= SBXX.SBBH
           WHERE 1 = 1
           AND jgsj >= to_date('2016-10-26 16:15:00', 'yyyy-mm-dd hh24:mi:ss')
           AND jgsj < to_date('2016-10-26 16:25:00', 'yyyy-mm-dd hh24:mi:ss')
         Group By JGCL.SBBH, JGCL.CDBH, SBXX.SBMC
js14982 2016-10-27
  • 打赏
  • 举报
回复
select SBBH,CDBH,IMGURL,SBMC from 
(SELECT SBBH,CDBH,IMGURL,SBMC,row_number()over(partition by SBBH,CDBH order by IMGURL desc,SBMC desc) rn FROM TABLE )
where rn=1;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧