gpt4 book ai didi

sql - 按组合排序

转载 作者:行者123 更新时间:2023-12-04 05:15:13 25 4
gpt4 key购买 nike

我有一个结果集,我想在其中应用组合排序。

示例

SELECT Id, Name FROM Users



结果
Id  Name   
1 Albert
2 Alfred
3 Carl
4 David
5 Ernest

现在,这些用户可以按上次访问、上次发帖、评论数量或计算参数进行排序。如果我有这样的 SELECT,我该如何订购:

SELECT Id, Name, function_last_access(Id) as f1, function_last_post(Id) as f2, function_calculate_parameters(Id) as f3 FROM Users


Id  Name     f1   f2   f3
1 Albert 2 100 1,1
2 Alfred 10 20 2
3 Carl 0 15 5
4 David 5 2 3
5 Ernest 4 5 1

最好采用不同的有序列表并在之后组合它们?
或者将它们放在列中,然后应用归一化函数,然后对它们进行排序?

可以帮我按分区排序或类似的东西吗?

最佳答案

您可以将别名移动到子查询,以便您可以在 order by 中引用它们。 :

SELECT  *
FROM (
SELECT Id
, Name
, function_last_access(Id) as f1
, function_last_post(Id) as f2
, function_calculate_parameters(Id) as f3
FROM Users
) as SubQueryAlias
order by
0.3 * f3 + 0.2 * f2 + 0.1 * f3 desc

关于sql - 按组合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360882/

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