我的源表包含销售信息。每一行都是一个人,并记录他们每次购物/在哪里购物。因此,我可以通过以下方式计算每个行业的平均交易价值:
select
industry,
COALESCE(AVG(CASE WHEN shopcode in (1,2,4) THEN dollar END), 0) AS avt
from sales
group by industry
但是我如何调整它来计算每个不同用户计数的支出,即:sum(dollar)/count(distinct person)
与上面非常相似,但不是 sum/count(*) sum/count(distinct person)
...我也需要使用合并。
答案 0 :(得分:0)
我如何调整它来计算每个不同用户计数的支出,即:sum(dollar)/count(distinct person)
您可以使用:
import pandas as pd
test = pd.DataFrame({'timestamp': ["2021/06/24", "2021/06/24", "2021/06/25"], 'data_point_1': ["a", "c", "c"], 'data_point_2': ["b", "d", "d"], 'some_data': [2, 3, 3]})
print(test)
# timestamp data_point_1 data_point_2 some_data
# 0 2021/06/24 a b 2
# 1 2021/06/24 c d 3
# 2 2021/06/25 c d 3
# desired:
# timestamp (a,b) (c,d)
# 0 2021/06/24 2 3
# 1 2021/06/25 0 3
我不确定 select industry,
sum(dollar) / count(distinct person)
from sales
group by industry;
上的过滤是为了什么。它在您的查询中,但不是问题的一部分。如果您希望将其用于特定商店,我建议将其移至 shop_code
子句:
where