gpt4 book ai didi

mysql - 输出同一 SQL 表中不同列的不同行

转载 作者:行者123 更新时间:2023-11-29 09:28:39 26 4
gpt4 key购买 nike

我正在尝试计算过去 4 个月的运行平均值。所以我需要获取每个月的第四个值

month_date | Month 1 | Month 2 | Month 3| Month 4
---------------------------------------------
11 | 0 | 0 | 0 | 0
10 | 2 | 0 | 0 | 0
09 | 3 | 4 | 0 | 0
08 | 8 | 7 | 9 | 0
07 | 6 | 8 | 11 | 5
06 | 3 | 4 | 0 | 8
05 | 8 | 7 | 9 | 9
04 | 6 | 8 | 11 | 5

[预期输出]

 | Month 1 | Month 2 | Month 3| Month 4
----------------------------------------
| 6 | 4 | 9 | 5

我尝试做什么

  • 我试图排除零进行排名就像 row_number over (按月降序排列) - 这不起作用

-我尝试使用 NULLS LAST 函数,但也不起作用,因为我需要根据月份而不是每个月进行排序

请帮忙

最佳答案

这是一个非常奇怪的要求。但是您可以使用窗口函数来获得第一个非零排名。然后添加三个并使用条件聚合:

select max(case when rank = month1_rank0 + 3 then month1 end) as month1,
max(case when rank = month2_rank0 + 3 then month2 end) as month2,
max(case when rank = month3_rank0 + 3 then month3 end) as month3,
max(case when rank = month4_rank0 + 3 then month4 end) as month4
from (select t.*,
min(case when month1 <> 0 then rank end) over () as month1_rank0,
min(case when month2 <> 0 then rank end) over () as month2_rank0,
min(case when month3 <> 0 then rank end) over () as month3_rank0,
min(case when month4 <> 0 then rank end) over () as month4_rank0
from t
) t

关于mysql - 输出同一 SQL 表中不同列的不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165675/

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