【问题标题】:BigQuery - count the count of a columnBigQuery - 计算一列的计数
【发布时间】:2018-04-27 18:49:55
【问题描述】:

一般是 SQL 和 BigQuery 的新手。如何计算 BigQuery 中列的计数?从代码示例中可以看出,查询将 appName 的计数返回为 WhitelistNames,但我想获取 WhitelistNames 的计数。

SELECT
COUNT(appName) AS WhitelistNames,
  bridgeToken
FROM (
  SELECT
    bridgeToken,
    appName
  FROM
    [DB]
  GROUP BY
    bridgeToken,
    appName )
GROUP BY
  bridgeToken
ORDER BY
  WhitelistNames DESC

当前查询返回是:

Row UniquebridgeToken   WhitelistEntries    
1   11111               5         
2   22222               13    
3   33333               3     
4   44444               3
5   55555               3     

但我想统计 UniquebridgeToken 的出现,如下所示。提前致谢。:

Row WhitelistEntries    BridgeCount
1   13                  1
2   5                   1
3   3                   3

【问题讨论】:

  • 目前在你的查询WhitelistNames代表appname计数的别名,你还想统计什么?
  • 我在描述中写了更多细节以更好地解释所需的结果。谢谢。

标签: google-bigquery


【解决方案1】:

以下是 BigQuery 标准 SQL 并基于我如何解释您的问题 - 这是:
对于每个 bridgeToken 有多少个唯一的 appName 以及该桥的总条目(行)数

#standardSQL
SELECT 
  COUNT(DISTINCT appName) AS WhitelistNames, 
  COUNT(bridgeToken) AS BridgeCount
FROM `project.dataset.your_table`
GROUP BY bridgeToken

【讨论】:

  • 抱歉回复延迟。我已经编辑了我的问题以使其更清楚。提前致谢。
【解决方案2】:

我了解您想要的是计算有多少 UniquebridgeToken 具有相同数量的 WhitelistEntries。我认为您正在寻找的是:

WITH nestedQuery AS (SELECT
    appName,
    COUNT(appName) as WhitelistEntries
FROM `project_name.dataset_name.table_name`
GROUP BY 
     price)

SELECT n.WhitelistEntries, COUNT(n.WhitelistEntries) as BridgeCount
FROM nestedQuery as n
GROUP BY n.WhitelistEntries

你可以在这里阅读 WITH 子句:https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多