gpt4 book ai didi

python - 使用 Python 计算 BigQuery 表中有多少行

转载 作者:行者123 更新时间:2023-11-30 22:33:19 25 4
gpt4 key购买 nike

作为一个简短的总结 - 我想设置一个等于表中存在的行数或数据条目数的变量。

我正在 Python 脚本中运行一个查询,该查询计算过去一周我的应用程序中使用的设备数量。我通过计算不同的序列号来做到这一点。目前我正在使用这个查询。

#standardsql
SELECT count(distinct serial)
FROM `dataworks-356fa.FirebaseArchive.test2`
Where (PeripheralType = 1 or PeripheralType = 2 or PeripheralType = 12)
AND EXTRACT(WEEK FROM createdAt) = EXTRACT(WEEK FROM CURRENT_TIMESTAMP()) - 1
AND serial != 'null'

稍后,我将使用此代码在我的 python 脚本中将此结果发送到 slack。

with open('Count_BB_Serial_weekly.json', 'r') as lowfile:
low = json.load(lowfile)

low1 = low["f0_"]

f0_ = 计算的不同序列号的数量

但是,现在我想添加一个功能,我还可以查看已使用的序列号以及使用的不同序列号的数量。列出序列号的查询与上面类似,只是没有 count(distinct) 部分。有没有办法可以将 low1 设置为等于表中的行数,因为我无法运行也列出序列号的计数函数。希望你能遵循这一点。如果有任何困惑我会在评论中解决。

谢谢!

最佳答案

您可能已经可以将此结果引入 BigQuery 中。例如:

#standardSQL
WITH data AS(
SELECT '1' AS serial UNION ALL
SELECT '2' as serial UNION ALL
SELECT '3' AS serial UNION ALL
SELECT '1' AS serial
)

SELECT
ARRAY_AGG(DISTINCT serial) distinct_serials,
ARRAY_LENGTH(ARRAY_AGG(DISTINCT serial)) total_serials
FROM
data

结果:

[
{
"distinct_serials": [
"2",
"1",
"3"
],
"total_serials": "3"
}
]

或者在您的查询中,它会类似于:

#standardsql
SELECT
ARRAY_AGG(serial) serials,
ARRAY_LENGTH(ARRAY_AGG(serial)) total_serials
FROM(
SELECT distinct serial AS serial
FROM `dataworks-356fa.FirebaseArchive.test2`
Where (PeripheralType = 1 or PeripheralType = 2 or PeripheralType = 12)
AND EXTRACT(WEEK FROM createdAt) = EXTRACT(WEEK FROM CURRENT_TIMESTAMP()) - 1
AND serial != 'null')

结果应该类似于:

[{"serials": ["serial_1", "serial_2", (...)], "total_serials": 10}]

您将有一个包含连续出版物的数组和另一个包含其总条目的字段。

关于python - 使用 Python 计算 BigQuery 表中有多少行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com