首页 > 解决方案 > python函数.size()的sql等效函数是什么?

问题描述

我正在尝试解决 bigquery 的问题;连续6个月交易的客户名单。我已经用 python 解决了,但我不知道如何在 sql 上复制代码。这是代码

df.groupby(['Month','accounttoken'])['transactionid'].value_counts()
a=df[df.groupby(['Month','accounttoken'])['transactionid'].transform('count')>=5]
df_grouped = a.groupby(['Month', 'accounttoken','Name']).size().reset_index(name='num_transactions')
a1 = df_grouped[df_grouped['num_transactions']>=5]

到目前为止,这就是我对 sql 所做的

select Month, Name,accounttoken,count(transactionid) no_of_trans from data
group by Month, accounttoken,Name
having count(transactionid)>=5

我认为我需要的是 .size() 函数的等价物

标签: pythonpandasgoogle-bigquery

解决方案


count(*) 正在计算组中的行数。

SELECT count(*) as num_transactions
FROM data
GROUP BY Month, accounttoken, name
HAVING count(*) >= 5

您可以使用这些 SQL 查询来替换您给出的最后两行 Python 代码。我希望你给出的 SQL 查询也能正常工作。


推荐阅读