fix: 用户排行JOIN users.username,供应商排行JOIN llmprovider.name
This commit is contained in:
parent
a229abfb81
commit
ef83842af2
@ -246,20 +246,26 @@ async def get_top_models(env, sor, limit=5):
|
||||
|
||||
async def get_top_providers(env, sor, limit=5):
|
||||
"""Top N 供应商(按金额,全量)"""
|
||||
sql = """SELECT providerid, COUNT(*) as cnt, COALESCE(SUM(amount_cny), 0) as total_amount
|
||||
FROM dm_model_call_fact WHERE providerid IS NOT NULL
|
||||
GROUP BY providerid ORDER BY total_amount DESC LIMIT ${limit}$"""
|
||||
sql = """SELECT f.providerid, COUNT(*) as cnt, COALESCE(SUM(f.amount_cny), 0) as total_amount,
|
||||
COALESCE(p.name, f.providerid) as provider_name
|
||||
FROM dm_model_call_fact f
|
||||
LEFT JOIN llmprovider p ON p.id = f.providerid
|
||||
WHERE f.providerid IS NOT NULL
|
||||
GROUP BY f.providerid ORDER BY total_amount DESC LIMIT ${limit}$"""
|
||||
recs = await sor.sqlExe(sql, {'limit': limit})
|
||||
return [{'provider_name': r.providerid or 'Unknown', 'cnt': int(r.cnt),
|
||||
'total_amount': round(float(r.total_amount), 2)} for r in recs]
|
||||
return [{'provider_name': r.provider_name or r.providerid or 'Unknown',
|
||||
'cnt': int(r.cnt), 'total_amount': round(float(r.total_amount), 2)} for r in recs]
|
||||
|
||||
|
||||
async def get_top_users(env, sor, limit=5):
|
||||
"""全量 Top N 用户(按金额)"""
|
||||
sql = """SELECT userid, COUNT(*) as cnt, COALESCE(SUM(amount_cny), 0) as total_amount
|
||||
FROM dm_model_call_fact GROUP BY userid ORDER BY total_amount DESC LIMIT ${limit}$"""
|
||||
sql = """SELECT f.userid, COUNT(*) as cnt, COALESCE(SUM(f.amount_cny), 0) as total_amount,
|
||||
COALESCE(u.username, f.userid) as user_name
|
||||
FROM dm_model_call_fact f
|
||||
LEFT JOIN users u ON u.id = f.userid
|
||||
GROUP BY f.userid ORDER BY total_amount DESC LIMIT ${limit}$"""
|
||||
recs = await sor.sqlExe(sql, {'limit': limit})
|
||||
return [{'user_name': r.userid, 'cnt': int(r.cnt),
|
||||
return [{'user_name': r.user_name or r.userid, 'cnt': int(r.cnt),
|
||||
'total_amount': round(float(r.total_amount), 2)} for r in recs]
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user