2014-12-23 43 views
2

我與TRANSACTION_ID,日期,客戶,ZIP和支付金額列款項的BigQuery資料表如何加入採用小寫尺寸的BigQuery

我想爲客戶創造一個表,支付總額的一列,這是客戶所做的所有payment_amounts的總和。

有時,客戶使用不同的資本從一個購買到下,這將導致約翰·史密斯和約翰·史密斯得到不同的行中我的新表,當他們實際上是同一個人鍵入他們的名字。

我想找出一種方法來創建此表,其中約翰·史密斯,約翰史密斯和約翰·史密斯被認爲是同一個客戶。 我曾嘗試:

SELECT 
lower(name) as name_a 
,zip 
,total_payments 
From SweetData.Payments AS a 

JOIN EACH 

(Select 
lower(name) as name_b 
,sum(amount) as total_payments 
From SweetData.Payments 
GROUP BY name_b) As b 

ON a.name_a = b.name_b 

但它給我一個錯誤使用別名從表「A」在ON子句。

所以,我想在ON子句中使用函數低()如下:

SELECT 
name 
,zip 
,total_payments 
From SweetData.Payments AS a 

JOIN EACH 

(Select 
lower(name) as name_b 
,sum(amount) as total_payments 
From SweetData.Payments 
GROUP BY name_b) As b 

ON lower(a.name) = b.name_b 

但我得到了一個錯誤那裏。

感謝您的幫助!

回答

3

組織編寫了

如果我理解你的更新請求,本應該做的伎倆:

SELECT 
    a.name 
    , a.zip 
    , b.total_payments 
FROM (
    SELECT 
     lower(name) as name 
     ,zip 
    From SweetData.Payments 
) AS b 
JOIN (
    select 
     lower(name) as name 
     , sum(payments) as total_payments 
    from SweetData.Payments 
    group by 1 
) AS a 
ON a.name = b.name 
+1

嘿吉爾, 感謝您的回覆!我的問題比我原先想象的要複雜一點,恐怕我對這篇文章的評論太過分了。 (新手的錯誤!) 我的第一個表將包括尺寸,我不會被通過分組total_payments,因此,我認爲我需要一個連接。 請參閱修改我的更正。 再次感謝! –

+0

我做了更改 - 現在怎麼樣? –

+0

嗯,這給了我以下錯誤:Google BigQuery服務無法編譯查詢。 未找到字段'total_payments'。 我試圖與它擺弄,但還是沒能解決問題。 雖然謝謝! –