SQL问题

怎么查询成绩最高分的人

比如

 A     列     列2      列3

 小     28     69        67

王       26       78       09

 朱      34      100      11

李       99         2        100

变成

 A     列     列2      列3

朱            100

李      99             100

SQL 在菜鸟的菜鸡 发布于 2024-2-29 16:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
JL98Lv6中级互助
发布于2024-2-29 16:59(编辑于 2024-3-1 10:48)

image.png

WITH scores AS (

SELECT

'小' AS A,

28 AS 列,

69 AS 列2,

67 AS 列3 UNION ALL

SELECT

'王' AS A,

26 AS 列,

78 AS 列2,

9 AS 列3 UNION ALL

SELECT

'朱' AS A,

34 AS 列,

100 AS 列2,

11 AS 列3 UNION ALL

SELECT

'李' AS A,

99 AS 列,

2 AS 列2,

100 AS 列3 

) SELECT A, MAX(列) AS 列 , MAX(列2) AS 列2 , MAX(列3) AS 列3

FROM

(

SELECT

A,

列 ,

0 AS 列2 ,

0 AS 列3 

FROM

scores 

WHERE

列 = ( SELECT MAX(列) FROM scores ) 

UNION 

SELECT

A,

0 AS 列,

列2 ,

0 AS 列3 

FROM

scores 

WHERE

列2 = ( SELECT MAX(列2 ) FROM scores )

UNION   

SELECT

A,

0 AS 列,

0 AS 列2 ,

列3 

FROM

scores 

WHERE

列3 = ( SELECT MAX(列3 ) FROM scores ) ) T5

GROUP BY A

最佳回答
0
CarsenLv4见习互助
发布于2024-2-29 17:07

SELECT name, GREATEST(score1, score2, score3) AS 最好成绩

FROM t

GROUP BY name,score1, score2, score3;

最佳回答
0
用户bBKn44909079Lv3见习互助
发布于2024-3-1 11:11

select A,max(列) as aa,max(列2) as bb,max(列3) as cc from 表 group by A

  • 4关注人数
  • 325浏览人数
  • 最后回答于:2024-3-1 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部