我的数据格式如下。
order_no rate jan feb mar ....
1 1200 2 4
2 1000 1 5
3 2400 14 3
现在我要转置该表以获取以下输出。
order_no rate month unit
1 1200 feb 2
1 1200 mar 4
2 1000 jan 1
2 2400 mar 5 and so on..
我该怎么做?
答案 0 :(得分:1)
您可以使用交叉联接在数据上创建“临时”标准化视图:
select o.order_no, o.rate, v.*
from orders o
cross join lateral (
values
('jan', jan),
('feb', feb),
('mar', mar),
...
('dec', dec)
) as v(month, unit)
如果要排除没有值的月份,可以添加
where v.unit is not null
查询
答案 1 :(得分:0)
一种简单的方法使用UNION
:
SELECT order_no, rate, 'jan' AS month, jan AS unit UNION ALL
SELECT order_no, rate, 'feb', feb UNION ALL
...
SELECT order_no, rate, 'dec', dec
ORDER BY order_no;
Postgres还具有CROSSTAB
功能。但是要使用它,您必须非常擅长SQL,而我不是。
答案 2 :(得分:0)
尝试一下
import selenium
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options = options, executable_path = r'C:\Users\a\Selenium\chromedriver.exe')
driver.get('https://www.google.com')
driver.set_window_size(1920, 1080)
driver.save_screenshot('screenshot.png')