gpt4 book ai didi

sql - 在 SQL 中的 order by 中嵌套 order by/order by

转载 作者:行者123 更新时间:2023-12-01 03:54:38 30 4
gpt4 key购买 nike

我正在寻找通过 sql 查询对我的 sql 结果进行排序,大概在 order by 子句中使用某种嵌套的 order by/order by

我有以下数据:

TERM      USER      ITEM_NO     SCORE
man sam 2 NULL
man sam 1 170
man jerry 1 100
man jerry 2 NULL
man sam 3 NULL

我希望获得以下结果顺序:
TERM      USER      ITEM_NO     SCORE
man sam 1 170
man sam 2 NULL
man sam 3 NULL
man jerry 1 100
man jerry 2 NULL

结果必须首先按分数(仅存储在每个用户的 item_no 1 中)降序排序。但是,该用户为所选术语创建的任何其他项目也必须直接在 item_no 之后选取并插入。

我当前的查询如下所示:
SELECT * FROM table WHERE term = 'man' ORDER BY SCORE DESC, ITEM_NO ASC

...然而,这只是结果如下:
TERM      USER      ITEM_NO     SCORE
man sam 1 170
man jerry 1 100
man sam 2 NULL
man jerry 2 NULL
man sam 3 NULL

谢谢你的任何建议。

最佳答案

SELECT *,
(SELECT MAX(Score)
FROM TEST t2
WHERE t2.Term = t1.Term AND t2.User = t1.User GROUP BY t2.Term, t2. User) as max_score
FROM test t1
WHERE term = 'man'
ORDER BY max_score DESC, ITEM_NO ASC

工作 DEMO

或具有相同结果的另一种解决方案(我认为它具有更好的性能,但您需要对此进行一些测试):
SELECT t1.*
FROM test t1
JOIN
(SELECT t2.Term, t2.User, score FROM Test t2 WHERE t2.Item_No = 1) t3
ON t1.Term = t3.Term AND t1.User = t3.User
ORDER BY t3.score DESC, t1.Item_No;

DEMO

关于sql - 在 SQL 中的 order by 中嵌套 order by/order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18414627/

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