gpt4 book ai didi

mysql - 表中每个事件的子查询

转载 作者:行者123 更新时间:2023-11-29 12:33:42 28 4
gpt4 key购买 nike

我的表格包括

  1. 种族

-race_id

-athlete_id

-地点

2.奖品

-race_id

-地点

-钱

我现在需要对每场比赛运行查询,列出第一名、第二名和第三名的奖金?我知道如何检索所有地点的所有比赛的结果:

SELECT 
*
FROM
prize
GROUP BY race_id , place;

但是,我确实需要这样显示列标题

RACE_ID |第一 |第二 |第三

我尝试运行以下 SQL,但是收到错误消息“ErrorCode:1242。子查询返回超过 1 行” SELECT race_id, 'First', 'Second', Third' FROMprize WHERE 'First' = (SELECT钱来自奖品,位置在 (1)) AND WHERE '第二' = (从奖品中选择钱,位置在 (2)) AND WHERE '第三' = (从奖品中选择钱,位置在 (3)) ORDER BY race_id;我知道子查询要求语句是标量,因此,这是否意味着我需要为每个 race_id 运行单独的子查询?

最佳答案

您需要进行基于案例的聚合,在其他DBMS中,您可以使用pivot子句来完成。

SELECT 
race_id,
max(case when place =1 then money else NULL end) as FIRST,
max(case when place =2 then money else NULL end) as SECOND,
max(case when place =3 then money else NULL end) as THIRD,

FROM
prize
GROUP BY
race_id

关于mysql - 表中每个事件的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096452/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com