SQL分组标记最大值怎么实现?

image.png

Mee 发布于 2020-11-16 20:28
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
shirokoLv6资深互助
发布于2020-11-16 21:36

SELECT A.*,(CASE WHEN A.列1=B.MAX列1 THEN '是' ELSE '否' END) 是否 from 表  A

left join 

(select MAX(列1) MAX列1,列2 from 表 GROUP BY 列2)  B

ON A.列2=B.列2

最佳回答
0
张洪威Lv6高级互助
发布于2020-11-16 21:33

先按分组最大值用sql求出来。

然后自连接,把最大值join出来,用case when 加个判断,最大值有值的时候赋值是,无值赋值无。

最佳回答
0
axingLv6专家互助
发布于2020-11-17 09:42
select a,b,case when a=max(a)over (partition by b) then '是' else '否' end as c from temp
order by b,a

image.png

  • 4关注人数
  • 415浏览人数
  • 最后回答于:2020-11-17 09:42
    请选择关闭问题的原因
    确定 取消
    返回顶部