Spaces:
Sleeping
Sleeping
| """Seller performance analytics queries.""" | |
| import pandas as pd | |
| from sqlalchemy import Engine, text | |
| def top_sellers_by_revenue(engine: Engine, limit: int = 20) -> pd.DataFrame: | |
| sql = text(""" | |
| SELECT | |
| ds.seller_id, | |
| ds.city, | |
| ds.state, | |
| ds.total_orders, | |
| ds.avg_review_score, | |
| ds.on_time_rate, | |
| SUM(f.price + f.freight_value) AS revenue | |
| FROM dim_sellers ds | |
| JOIN fact_orders f ON ds.seller_key = f.seller_key | |
| WHERE f.order_status NOT IN ('canceled', 'unavailable') | |
| GROUP BY ds.seller_id, ds.city, ds.state, ds.total_orders, ds.avg_review_score, ds.on_time_rate | |
| ORDER BY revenue DESC LIMIT :n | |
| """) | |
| with engine.connect() as conn: | |
| return pd.read_sql(sql, conn, params={"n": limit}) | |
| def seller_review_distribution(engine: Engine) -> pd.DataFrame: | |
| sql = text(""" | |
| SELECT review_score, COUNT(*) AS orders | |
| FROM fact_orders | |
| WHERE review_score IS NOT NULL | |
| GROUP BY 1 ORDER BY 1 | |
| """) | |
| with engine.connect() as conn: | |
| return pd.read_sql(sql, conn) | |
| def sellers_with_geo(engine: Engine) -> pd.DataFrame: | |
| sql = text(""" | |
| SELECT seller_id, city, state, lat, lng, total_orders, avg_review_score | |
| FROM dim_sellers | |
| WHERE lat IS NOT NULL AND lng IS NOT NULL | |
| """) | |
| with engine.connect() as conn: | |
| return pd.read_sql(sql, conn) | |
| def all_sellers(engine: Engine) -> pd.DataFrame: | |
| sql = text(""" | |
| SELECT seller_id, city, state, total_orders, avg_review_score, on_time_rate | |
| FROM dim_sellers | |
| ORDER BY total_orders DESC | |
| """) | |
| with engine.connect() as conn: | |
| return pd.read_sql(sql, conn) | |