我有兩個表格,其中有完全的資料集和標題。
我設法將其連接在一起,但使用的是下面的代碼,但這是垂直連接。
QUERY = ""
SELECT SUM(CAST(US.amount as DECIMAL(13,2))) filter (where type IN ('USA') ) as "USA Net Amount" from da1.tb1
聯合
SELECT SUM(CAST(EU.amount as DECIMAL(13,2))) filter (where type IN ('EU')) as "EU Net Amount" from da2.tb2
"""
結果 = fetch_data(QUERY)
display(results)
results.to.csv('output.csv',index=False)
下面是我的輸出,歐盟的凈額輸出為第二行。
| 美國凈金額 | 50.00 | 100.00 |
|---|
| 100.00 |
我想實作的是,將歐元凈額作為新的第二列輸出。
| 美國凈金額 | 歐盟凈額 | 。
|---|---|
| 50.00 | 100.00 |
| 100.00 |
uj5u.com熱心網友回復:
select t1. "USA Net Amount", t2. "EU Net Amount"
FROM[/span
(SELECT SUM(CAST(US. amount as DECIMAL(13,2) ) filter (where type IN ('USA') as "美國凈額"
from da1.tb1) t1
CROSSJOIN
(SELECT SUM(CAST(EU. amount as DECIMAL(13,2) ) filter (where type IN ('EU') as "歐盟凈額"
from da2.tb2) t2
然而,我不知道這種語法是否被支持?
符合SQL-2016的規定 使用了SQL-2016之外的以下功能。 T612,高級OLAP操作 T611, 初級OLAP操作 F591, 衍生表 F401, 擴展連接表
uj5u.com熱心網友回復:
在UNION ALL(這里需要UNION ALL,而不是UNION)的查詢中添加型別列,以表示國家,并使用條件聚合:
select max(AMT) FILTER(WHERE type="USA") as "USA Net Amount"。
max(AMT) FILTER(WHERE type="EU") as"EU Net Amount"
from"歐盟凈額
(
--在union ALL中的聚合可以并行執行。
SELECT SUM(CAST(US. amount as DECIMAL(13,2) ) as Amt, type from da1. tb1 where type IN ('USA') group by type
UNION ALL --不是UNION!
SELECT SUM(CAST(EU. amount as DECIMAL(13,2) ) as Amt, type from da2. tb2 where type IN ('EU') group by type
) as s
或者在UNION ALL之后使用單一的聚合步驟:
select sum(AMT) FILTER(WHERE type="USA") as "USA Net Amount"。
sum(AMT) FILTER(WHERE type="EU") as"EU Net Amount"
from"歐盟凈額
(
SELECT CAST(US. amount as DECIMAL(13,2) as Amt, type from da1.tb1 where type IN ('USA' )
UNION ALL --不是UNION!
SELECT CAST(EU. amount as DECIMAL(13,2) as Amt, type from da2.tb2 where type IN ('EU' )
) as s
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/320156.html
標籤:
