[英]Selecting max values of a column using the max value of another column
我在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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.