gpt4 book ai didi

MySQL:获取 View 中排序表中的行位置

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

好吧,我很难想象如何描述这个问题,但基本上我的观点是这样的:

CREATE VIEW `dbname`.`v_viewname` AS
select
idTable,
round(val1*(probability*.01),2) as probest,
from table

我想要做的是创建另一个字段(我们称之为“排名”),它是按探针按降序排序时行的位置。首先,我创建了一个存储过程,它将生成一个表来执行此操作并将其转换为派生表,如下所示:

set @rownum := 0;

select * from (

select @rownum := @rownum+1 AS rank, idTable

from table order by (val1*probability) desc )

as derived_table;

所以问题是,我如何将这个派生表与我在 View 中读取的表连接起来?该表是例行程序还是我会使用的东西:

table join inner derived_table on table.idTable = derived_table.idTable;

但是因为这必须通过 View 来完成,所以我什至不知道如何获取用于连接的派生表。另外:如果这种方法行不通或效率低下,还有什么替代方法?

最佳答案

select tbl.*, @rownum := @rownum+1 AS rank
from (select
idTable,
round(val1*(probability*.01),2) as probest,
from table
order by probest desc) tbl
,(select @rownum := 0) init_vars

关于MySQL:获取 View 中排序表中的行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671369/

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