gpt4 book ai didi

mysql - 使用另一列的最大值选择一列的最大值

转载 作者:行者123 更新时间:2023-11-29 12:08:23 25 4
gpt4 key购买 nike

我正在 MySQL 中编写一个查询,它对我提出了挑战。情况是这样的;

假设我有一个名为“status”的表,用于保存此类电视节目的数据;

+---------+---------+---------+---------+
| id | season | episode | channel |
+---------+---------+---------+---------+
| 1 | 2 | 10 | a |
| 1 | 3 | 2 | b |
| 1 | 2 | 9 | c |
| 1 | 3 | 1 | d |
| 1 | 3 | 2 | e |
+---------+---------+---------+---------+

我想检索包含上一季最后发布的剧集的行。根据上表,我期望这样的结果

+---------+---------+---------+
| season | episode | channel |
+---------+---------+---------+
| 3 | 2 | b |
| 3 | 2 | e |
+---------+---------+---------+

季节列的最大值为 3。在本例中,我检索了剧集列最大值的行,其中季节等于 3。我编写了一个查询,它给出了预期结果,但我认为这不是一个合适的查询。我该如何改进下面的查询?如果需要,我可以添加额外的信息或提供更多示例。

SELECT `season`, 
`episode`,
`channel`
FROM `status`
WHERE `tvseriesid` = 1
AND `season` = (SELECT Max(season)
FROM `status`
WHERE `tvseriesid` = 1)
AND `episode` = (SELECT Max(episode)
FROM `status`
WHERE `tvseriesid` = 1
AND `season` = (SELECT Max(season)
FROM `status`
WHERE `tvseriesid` = 1))

最佳答案

这是一种将所有信息放在一行的方法。不过,它更简单一些:

select season, episode, group_concat(channel)
from status
where tvseriesid = 1
group by season, episode
order by season desc, episode desc
limit 1;

关于mysql - 使用另一列的最大值选择一列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31094725/

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