嵌套的 reaptable 记录中的 Bigquery,找到给定值出现次数最多的其他值
Bigquery within nested reaptable record, find other values that occur most with given value
考虑 personsDataSchema
在 docs
中给出的示例
|- fullName: string (required)
|- age: integer
|- gender: string
+- phoneNumber: record
| |- areaCode: integer
| |- number: integer
+- children: record (repeated)
| |- name: string
| |- gender: string
| |- age: integer
+- citiesLived: record (repeated)
| |- place: string
| +- yearsLived: integer (repeated)
这里的CitiesLived
是一条可重复的记录。所以一个人可以住在多个城市。
现在,
我想知道居住在 CitiesLives.place
X
的人最喜欢的其他城市是什么。有没有办法让我可以统计地点 X
的其他城市 WITHIN RECORD
?
根据文档,
似乎有可能获得记录中的值计数
SELECT
fullName,
COUNT(children.name) WITHIN RECORD AS numberOfChildren
FROM [dataset.tableId];
所以想知道是否可以使用这个 WITHIN RECORD
来找到给定值出现次数最多的其他值?
希望这是有道理的。如果没有,请告诉我。我将添加缺少的详细信息。
使用评论中的示例,下面的查询将显示居住在都柏林的人中最受欢迎的 10 个城市
SELECT TOP(citiesLived.place, 10), COUNT(*) FROM
Persons
OMIT RECORD IF EVERY(citiesLived.place != "Dublin")
请注意,此查询还将包括都柏林本身,但如果需要,很容易将其删除。
考虑 personsDataSchema
在 docs
|- fullName: string (required)
|- age: integer
|- gender: string
+- phoneNumber: record
| |- areaCode: integer
| |- number: integer
+- children: record (repeated)
| |- name: string
| |- gender: string
| |- age: integer
+- citiesLived: record (repeated)
| |- place: string
| +- yearsLived: integer (repeated)
这里的CitiesLived
是一条可重复的记录。所以一个人可以住在多个城市。
现在,
我想知道居住在 CitiesLives.place
X
的人最喜欢的其他城市是什么。有没有办法让我可以统计地点 X
的其他城市 WITHIN RECORD
?
根据文档, 似乎有可能获得记录中的值计数
SELECT
fullName,
COUNT(children.name) WITHIN RECORD AS numberOfChildren
FROM [dataset.tableId];
所以想知道是否可以使用这个 WITHIN RECORD
来找到给定值出现次数最多的其他值?
希望这是有道理的。如果没有,请告诉我。我将添加缺少的详细信息。
使用评论中的示例,下面的查询将显示居住在都柏林的人中最受欢迎的 10 个城市
SELECT TOP(citiesLived.place, 10), COUNT(*) FROM
Persons
OMIT RECORD IF EVERY(citiesLived.place != "Dublin")
请注意,此查询还将包括都柏林本身,但如果需要,很容易将其删除。