2

目标是在大范围的数字上改变价格,以便能够绘制一个数字。我当前的查询返回一行名称和默认价格。

我尝试添加一个增量变量:

select 
name, price*row_number from 
(select 
name, 
price, 
@rownum := @rownum+1 as row_number
from portfolio)dt
cross join (select @rownum := 0) r

然而,这(显然)仍然只返回一行,而输出应该是使用不同的 row_number 值的多次迭代。

4

1 回答 1

0

迭代为投资组合中的每一行返回 1 行,因为它与只有一行的表交叉连接 select @rownum := 0

如果我正确理解了这个问题,你最好将投资组合交叉连接到自身(或者甚至更好地连接到任何表,其近似行数等于你想要的变体数),例如:

 set @rownumber=0;
    
    select 
    name, price * rownumber from 
    (select 
    name, 
    price, 
    @rownum := @rownum+1 as rownumber
    from portfolio)dt
    cross join (select * from portfolio) r

剧透警报:情节将是一条无聊的直线:)

于 2021-12-22T13:08:18.073 回答