python个人收支管理系统相关题目_练手题:计算人均付费(SQLPython)
ARPU:人均付費=總收入/總人數
ARPPU:付費用戶人均付費=總收入/付費人數
業務要求:
1.各地市用戶數、總費用(ARPU之和)是多少?
2.表一中各地市ARPU(0,30),[30,50),[50-80),[80以上)用戶數分別是多少?
3.表二中用戶有重復的記錄,找出重復的用戶
1.各地市用戶數、總費用(ARPU之和)是多少?
SELECT 城市,
COUNT(DISTINCT `用戶ID`) as 用戶數,
sum(ARPU) as 總費用 from `arpu值`
GROUP BY `城市`
2.表一中各地市ARPU(0,30),[30,50),[50-80),[80以上)用戶數分別是多少?
SELECT 城市,
SUM(CASE WHEN ARPU<30 AND ARPU>0 THEN 1 ELSE 0 END) AS '(0,30)',
SUM(CASE WHEN ARPU>=30 AND ARPU<50 THEN 1 ELSE 0 END) AS '[30,50)',
SUM(CASE WHEN ARPU>=50 AND ARPU<80 THEN 1 ELSE 0 END) AS '[50,80)',
SUM(CASE WHEN ARPU>=80 THEN 1 ELSE 0 END) AS '80+'
from `arpu值`
GROUP BY `城市`
3.表二中用戶有重復的記錄,找出重復的用戶
#方法一
SELECT t.`用戶ID` FROM
(SELECT `用戶ID`,COUNT(1) AS num FROM 套餐費用
GROUP BY `用戶ID`)t
where t.num>1
#方法二
SELECT `用戶ID` FROM 套餐費用
GROUP BY `用戶ID`
HAVING count(1)>1
Python求解
1.各地市用戶數、總費用(ARPU之和)是多少?
df=pd.read_csv('C:/Users/andyf/Desktop/ARPU.csv')
df_count=df.groupby(['城市','用戶ID']).count().reset_index().groupby('城市')['用戶ID'].count().reset_index()
df_ARPU=df.groupby('城市')['ARPU'].sum().reset_index()
print(df_count.merge(df_ARPU,on='城市'))
2.表一中各地市ARPU(0,30),[30,50),[50-80),[80以上)用戶數分別是多少?
df=pd.read_csv('C:/Users/andyf/Desktop/ARPU.csv')
df['label']=pd.cut(df['ARPU'],bins=[0,30,50,80,1000],right=False)
print(df.pivot_table(index='城市',columns='label',values='用戶ID',aggfunc='count').fillna(0))
3.表二中用戶有重復的記錄,找出重復的用戶
df=pd.read_csv('C:/Users/andyf/Desktop/套餐費用.csv')
print(df[df['用戶ID'].duplicated()]['用戶ID'])
print(df[df['用戶ID'].duplicated(keep='last')]['用戶ID'])
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python个人收支管理系统相关题目_练手题:计算人均付费(SQLPython)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ecs服务器数据迁移_某国际物流集团的云
- 下一篇: python你会吗_Python这些问题