Хорошо, у меня возникли проблемы, подумайте, как описать эту проблему, но в основном у меня есть представление, которое выглядит следующим образом:
CREATE VIEW `dbname`.`v_viewname` AS
select
idTable,
round(val1*(probability*.01),2) as probest,
from table
И что я хочу сделать, это создать другое поле (давайте назовем его«rank») - это позиция строки, когда она сортируется по критерию в порядке убывания.Сначала я создал хранимую процедуру, которая сгенерирует таблицу, которая сделает это и превратит ее в производную таблицу, которая выглядит следующим образом:
set @rownum := 0;
select * from (
select @rownum := @rownum+1 AS rank, idTable
from table order by (val1*probability) desc )
as derived_table;
, поэтому вопрос заключается в том, как мне соединить эту производную таблицу с моейтаблица, с которой я читаю, на мой взгляд?Была бы таблица в подпрограмме или что-то такое, что я бы использовал:
table join inner derived_table on table.idTable = derived_table.idTable;
, но поскольку это должно быть сделано с помощью представления, я даже не знаю, как получить производную таблицу для объединения.Также: если этот способ не будет работать или неэффективен, каким будет альтернативный метод?