Google bigquery BigQuery-如何根据单个记录计算OCCouncies,然后将其分组

Google bigquery BigQuery-如何根据单个记录计算OCCouncies,然后将其分组,google-bigquery,Google Bigquery,我的桌子看起来像这样: 我想输出另一个表,如下所示: 然后,我想创建另一个表,该表提供如下输出: 我设法用这个查询处理了第一部分: SELECT consumerID, count (distinct Action) AS TotalUniqueAction FROM [project:database.table] GROUP BY consumerID 但是现在我对第二个表感到迷茫了。下面是关于BigQuery标准SQL的 #standardSQL SELECT

我的桌子看起来像这样:

我想输出另一个表,如下所示:

然后,我想创建另一个表,该表提供如下输出:

我设法用这个查询处理了第一部分:

SELECT
  consumerID,
  count (distinct Action) AS TotalUniqueAction
FROM
  [project:database.table]
GROUP BY
  consumerID

但是现在我对第二个表感到迷茫了。

下面是关于BigQuery标准SQL的

#standardSQL
SELECT 
  CASE 
    WHEN TotalUniqueActions = 1 THEN 'Completed 1 Activity'
    WHEN TotalUniqueActions = 2 THEN 'Completed 2 Activity'
    WHEN TotalUniqueActions > 2 THEN 'Completed 3+ Activity'
  END AS ActionRange,
  COUNT(DISTINCT consumerID) UniqueCustomers
FROM (
  SELECT consumerID, COUNT(DISTINCT Action) TotalUniqueActions
  FROM `project.dataset.table`
  GROUP BY consumerID
)
GROUP BY ActionRange
如果要应用于问题中的虚拟数据,请返回以下结果

ActionRange                 UniqueCustomers  
Completed 2 Activity        1    
Completed 3+ Activity       1    

下面是BigQuery标准SQL

#standardSQL
SELECT 
  CASE 
    WHEN TotalUniqueActions = 1 THEN 'Completed 1 Activity'
    WHEN TotalUniqueActions = 2 THEN 'Completed 2 Activity'
    WHEN TotalUniqueActions > 2 THEN 'Completed 3+ Activity'
  END AS ActionRange,
  COUNT(DISTINCT consumerID) UniqueCustomers
FROM (
  SELECT consumerID, COUNT(DISTINCT Action) TotalUniqueActions
  FROM `project.dataset.table`
  GROUP BY consumerID
)
GROUP BY ActionRange
如果要应用于问题中的虚拟数据,请返回以下结果

ActionRange                 UniqueCustomers  
Completed 2 Activity        1    
Completed 3+ Activity       1    

你至少试过什么吗?@MikhailBerlyant我更新了问题的第一部分。顺便说一句,我期待着你的评论:)我想你已经完成了一半-请看我的答案:o)确保你使用的是标准sql,而不是遗留的!在legacy sql中,count(独立列)给出了估计/近似计数(仅供参考)您至少尝试过什么吗?@MikhailBerlyant我更新了问题中需求的第一部分。顺便说一句,我期待着你的评论:)我想你已经完成了一半-请看我的答案:o)确保你使用的是标准sql,而不是遗留的!在遗留sql中,count(不同列)给出估计/近似计数(与fyi相同)