[英]Google BigQuery SQL create multiple "columns" depending on if/then statement?
這可以在單個查詢中完成嗎?
我有一個要查詢的銷售表。 該表包含我們在項目級別的銷售交易的詳細信息,因此每條記錄都包含以下字段: cust_no 、 item_no 、 amount 、 month 、 year 。
我想逐月匯總客戶的銷售信息。 我知道我可以這樣總結數據:
select cust_no,
fiscal_year,
month,
sum(amount) as totalAmt,
group by cust_no, month, fiscal_year
...得到這樣的東西:
cust_no | 月 | 財政年度 | 總量 |
---|---|---|---|
cust_123 | 1 | 2022 | 123.45 |
cust_345 | 1 | 2022 | 456.78 |
但我想根據 item_no 字段是否為空來拆分銷售額(因為“產品”有一個 item_no,而“服務”有一個空白 item_no)。
這是我想要的結果:
cust_no | 月 | 財政年度 | totalAmt where item_no != '' | totalAmt where item_no = '' |
---|---|---|---|---|
cust_123 | 1 | 2022 | 123.45 | 222.22 |
cust_345 | 1 | 2022 | 456.78 | 111.11 |
有沒有辦法在一個查詢中做到這一點?
也許您可以嘗試以下查詢。
select
cust_no,
fiscal_year,
month,
SUM(CASE WHEN item_no is NOT NULL THEN totalAmt ELSE 0 END) as total_amt_when_non_null,
SUM(CASE WHEN item_no is NULL THEN totalAmt ELSE 0 END) as total_amt_when_null
FROM table
group by cust_no, month, fiscal_year
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.