【发布时间】:2021-11-19 14:18:12
【问题描述】:
我有一个大查询表。像这样:
date(week) vendor_name value
2021-11-14 rick 8000
2021-11-14 rose 7000
2021-11-14 axel 6500
2021-11-14 boris 6000
2021-11-14 cliff 5500
2021-11-07 rose 9500
2021-11-07 axel 8750
2021-11-07 rick 4000
2021-11-07 dean 3500
2021-11-07 evan 3000
.....
日期栏表示每周的开始日期。 vendor_name 列显示了该周销量最高的 5 个供应商。值列显示总销售额。每周的顶级供应商可能会有所不同。预期输出:
date(week) vendor_name value previous_date previous_top_vendors previous_value change
2021-11-14 rick 8000 2021-11-07 rose 9500 -%26
2021-11-14 rose 7000 2021-11-07 axel 8750 -25
2021-11-14 axel 6500 2021-11-07 rick 4000 %100
2021-11-14 boris 6000 2021-11-07 dean 3500 Null
2021-11-14 cliff 5500 2021-11-07 evan 3000 Null
收到最新日期后,会到上一周的数据。在这两周内,将比较卖家,他们的变化百分比将显示在名为“变化”的列中。
注意:供应商的排名可能每周都会发生变化。可以对新的供应商进行排名(在这种情况下,它应该在“更改”列中显示为 Null)
我试过了:
SELECT * FROM (select*from `table.top20_vendor` where date = '2021-11-14'),
(select date as previous_date, vendor_name as previous_top_vendors,value as previous_value
from `table.top20_vendor` where date ='2021-11-07')
但输出不正确:
date(week) vendor_name value previous_date previous_top_vendors previous_value
2021-11-14 rick 8000 2021-11-07 rose 9500
2021-11-14 rick 8000 2021-11-07 axel 8750
2021-11-14 rick 8000 2021-11-07 rick 4000
2021-11-14 rick 8000 2021-11-07 dean 3500
2021-11-14 rick 8000 2021-11-07 evan 3000
另外,我不知道如何计算“变化”列
【问题讨论】:
标签: sql google-bigquery compare