在 Big Query 的表中查找特定条件的属性计数

Posted

技术标签:

【中文标题】在 Big Query 的表中查找特定条件的属性计数【英文标题】:Find the Count of a property for a particular condition in Table in Big Query 【发布时间】:2016-02-09 11:12:04 【问题描述】:

我有一张在 Big Query 中有很多属性的表。我关心 Big Query 的两个属性。

我有

hits.eCommerceAction.action_type 、 hits.product.productSKU 和 hits.hitNumber。

写了如下代码

SELECT hits.product.productSKU as SKU,
IF(hits.eCommerceAction.action_type = '1', (hits.hitNumber), NULL) ListCLicks 
IF(hits.eCommerceAction.action_type = '2', (hits.hitNumber), NULL)) PDV
FROM [107485206.ga_sessions_20160101]
where hits.eCommerceAction.action_type in ('1')
#group by SKU,ListClicks 

我的问题是上面的代码返回了 hits.hitNumber 的第一个值,它是 SKU 的索引号。一个 SKU 可以有多个 hits.hitNumber。我想计算(而不是作为索引求和)SKU 的总 hits.hitNumber。

ProductSKU | PDV | ListCLicks
-------------------------
1          | 120 |  235 
2          | 234 |  124 
3          | 2311|  1256
4          | 12  |  34
5          | 12  |  33
2          | 112 |  345
4          | 789 |  1110
2          | 3333|  2131

当 hits.eCommerceAction.action_type = '2' 和时,PDV 是 hits.hitNumber 索引 当 hits.eCommerceAction.action_type = '1' 时,List Clicks 是 hits.hitNumber 索引

输出是

ProductSKU | PDV | ListCLicks
-------------------------
1          | 1   |  1   
2          | 3   |  3   
3          | 1   |  1
4          | 2   |  2
5          | 1   |  1

当 hits.eCommerceAction.action_type = '2' 和时,PDV 是 hits.hitNumber 计数 当 hits.eCommerceAction.action_type = '1' 时,List Clicks 是 hits.hitNumber 计数

我该怎么做?

【问题讨论】:

目前尚不清楚您的具体情况。您应该提供一些简化的输入示例和预期输出 @MikhailBerlyant 我添加了相同的内容。请看一看。 【参考方案1】:

我假设您想按类型计算电子商务操作的数量。如果是这样,您可以使用 SUM 来完成此操作,每个相关操作添加 1,否则为 0:

SELECT hits.product.productSKU as SKU,
  SUM(IF(hits.eCommerceAction.action_type = '1', 1, 0)) ListCLicks, 
  SUM(IF(hits.eCommerceAction.action_type = '2', 1, 0)) PDV
FROM [107485206.ga_sessions_20160101]
GROUP BY SKU 

【讨论】:

以上是关于在 Big Query 的表中查找特定条件的属性计数的主要内容,如果未能解决你的问题,请参考以下文章

Big Query 中的表未分区

使用 Big Query API 将数据提取到按时间分区的表中,但出现 SyntaxError: Unexpected end of input

如何在 Big Query 的标准 SQL 中使用通配符为特定分区查询多个表

Big Query 命令行:附属查询

多个 Big Query 表或类似数据的单数表

如何在 Oracle 的表中查找特定值?