簡體   English   中英

如何在Google BigQuery中進行匯總和分組

[英]How to Aggregate and Group By in Google BigQuery

在Google BigQuery中,我想根據某些維度(在這種情況下,按廣告系列和合作伙伴)匯總指標。 當我使用下面的代碼時,出現錯誤:



有人可以告訴我我需要在腳本中修復的問題嗎? 謝謝!
請參閱下面的示例表(忽略下表中的標題與提供的腳本不完全匹配):

在此處輸入圖片說明

SELECT
  SUM(a.amount) totalcost, 
  a.campaign_name, 
  c.friendly_campaign, 
  p.friendly_partner_name, 
  a.partner_name, 
  a.genre, 
  a.season, 
  a.package
FROM
  [TABLE 1] a
  LEFT OUTER JOIN
  [TABLE 2] p
ON
  a.partner_name = p.raw_partner_name
LEFT OUTER JOIN
  [TABLE 3] c 
ON
  a.campaign_name = c.campaign
GROUP BY ROLLUP(c.friendly_campaign, p.friendly_partner_name)

通常,在SQL中,如果要使用組進行聚合,則必須確定select語句中的字段是聚合還是組。 您不能沒有任何上下文就讓它站在那里。 因此,在您的情況下,您可能要刪除所有其他字段

SELECT
  SUM(a.amount) totalcost, 
  c.friendly_campaign, 
  p.friendly_partner_name, 
FROM
  [TABLE 1] a
  LEFT OUTER JOIN
  [TABLE 2] p
ON
  a.partner_name = p.raw_partner_name
LEFT OUTER JOIN
  [TABLE 3] c 
ON
  a.campaign_name = c.campaign
GROUP BY ROLLUP(c.friendly_campaign, p.friendly_partner_name)

或將它們添加為匯總a.amount

SELECT
  SUM(a.amount) totalcost, 
  a.campaign_name, 
  c.friendly_campaign, 
  p.friendly_partner_name, 
  a.partner_name, 
  a.genre, 
  a.season, 
  a.package
FROM
  [TABLE 1] a
  LEFT OUTER JOIN
  [TABLE 2] p
ON
  a.partner_name = p.raw_partner_name
LEFT OUTER JOIN
  [TABLE 3] c 
ON
  a.campaign_name = c.campaign
GROUP BY ROLLUP(2,3,4,5,6,7,8)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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