gpt4 book ai didi

ORDER BY FIELD 中值的 MySQL 子查询

转载 作者:行者123 更新时间:2023-11-29 14:38:47 35 4
gpt4 key购买 nike

我正在尝试编写一个查询,该查询将按照歌曲受欢迎程度的顺序获取最流行歌曲的最高分。

我有一个名为“gameplay”的表,其中包含以下字段:

  • ID
  • 歌曲 ID
  • 得分
  • (加上一些其他任意字段)

到目前为止,我得到的最接近的是:

SELECT id, song_id, score
FROM (
SELECT id, song_id, score
FROM (
SELECT id, song_id, score
FROM gameplay
ORDER BY score DESC
) AS all_scores_in_order
GROUP BY song_id
) AS top_scores_per_song
ORDER BY FIELD (song_id, 3,1,2)

但我希望 ORDER BY FIELD 中的值由另一个子查询生成 - 按流行度排名的 Song_id(按照表中行出现次数的顺序)即。

SELECT song_id
FROM gameplay
GROUP BY song_id
ORDER BY count( id ) DESC

最佳答案

难道不能在外部查询中按 Count(id) 进行分组然后排序吗?

这应该显示按出现次数排序的所有排序,并显示最高分数:

SELECT song_id, COUNT(id), MAX(score)
FROM gameplay
GROUP BY song_id
ORDER count(id) DESC

或者您希望每个 Song_id 出现多次吗?

关于ORDER BY FIELD 中值的 MySQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431932/

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