簡體   English   中英

Google BigQuery SQL 根據 if/then 語句創建多個“列”?

[英]Google BigQuery SQL create multiple "columns" depending on if/then statement?

這可以在單個查詢中完成嗎?

我有一個要查詢的銷售表。 該表包含我們在項目級別的銷售交易的詳細信息,因此每條記錄都包含以下字段: cust_noitem_noamountmonthyear

我想逐月匯總客戶的銷售信息。 我知道我可以這樣總結數據:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM