219 lines
4.8 KiB
SQL
219 lines
4.8 KiB
SQL
-- =====================================================================================
|
||
-- 数据分析模块(正式RPC)验证脚本
|
||
-- 文件: 99_ml_analytics_verify.sql
|
||
-- 说明:
|
||
-- 1) 先执行 01/02/03/04/05/06/07 等 RPC 脚本
|
||
-- 2) 再执行本文件,检查各 RPC 是否有返回
|
||
-- =====================================================================================
|
||
|
||
-- =============================
|
||
-- Dashboard(仪表盘)
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_realtime_kpis();
|
||
|
||
SELECT public.rpc_analytics_online_users() AS online_users;
|
||
|
||
|
||
-- =============================
|
||
-- 用户分析
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_user_kpis(
|
||
(CURRENT_DATE - INTERVAL '6 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_user_growth_trend(
|
||
(CURRENT_DATE - INTERVAL '6 days')::date,
|
||
CURRENT_DATE
|
||
)
|
||
ORDER BY date;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_user_segments(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_traffic_sources(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
|
||
-- =============================
|
||
-- 销售/仪表盘趋势
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_sales_kpis(
|
||
(CURRENT_DATE - INTERVAL '6 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_sales_trend(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
)
|
||
ORDER BY date;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_top_products(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE,
|
||
10
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_top_merchants(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE,
|
||
10
|
||
);
|
||
|
||
|
||
-- =============================
|
||
-- 市场趋势
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_market_trend_daily(
|
||
(CURRENT_DATE - INTERVAL '29 days')::timestamptz,
|
||
CURRENT_DATE::timestamptz
|
||
)
|
||
ORDER BY day;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_category_sales(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
)
|
||
LIMIT 20;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_seasonal_trend(
|
||
(CURRENT_DATE - INTERVAL '180 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_price_trend(
|
||
(CURRENT_DATE - INTERVAL '29 days')::timestamptz,
|
||
CURRENT_DATE::timestamptz
|
||
)
|
||
ORDER BY day;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_competition_share(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
)
|
||
LIMIT 20;
|
||
|
||
|
||
-- =============================
|
||
-- 商品洞察
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_product_insights_overview(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_product_insights_stock();
|
||
|
||
SELECT *
|
||
FROM public.rpc_product_insights_reviews();
|
||
|
||
|
||
-- =============================
|
||
-- 优惠券分析
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_coupon_overview(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_coupon_by_type(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_coupon_by_channel(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_coupon_trend(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
)
|
||
ORDER BY day;
|
||
|
||
SELECT *
|
||
FROM public.rpc_analytics_coupon_conversion(
|
||
(CURRENT_DATE - INTERVAL '29 days')::date,
|
||
CURRENT_DATE
|
||
);
|
||
|
||
|
||
-- =============================
|
||
-- 配送分析
|
||
-- =============================
|
||
|
||
SELECT *
|
||
FROM public.rpc_delivery_efficiency_daily(
|
||
(CURRENT_DATE - INTERVAL '29 days')::timestamptz,
|
||
CURRENT_DATE::timestamptz
|
||
)
|
||
ORDER BY day;
|
||
|
||
SELECT *
|
||
FROM public.rpc_delivery_efficiency_top_drivers(
|
||
(CURRENT_DATE - INTERVAL '29 days')::timestamptz,
|
||
CURRENT_DATE::timestamptz,
|
||
10
|
||
);
|
||
|
||
|
||
-- =============================
|
||
-- 自定义报表 & 数据详情
|
||
-- =============================
|
||
|
||
-- 注意:这部分验证需要以一个真实用户身份执行(例如在 Supabase SQL Editor 中)
|
||
|
||
-- 1. 创建一个测试报表 (sales dataset)
|
||
SELECT public.rpc_create_custom_report(
|
||
'Test Sales Report',
|
||
'A test report for sales data',
|
||
'{"dataset": "sales", "dimensions": ["date", "category"], "metrics": ["gmv", "orders"]}'::jsonb
|
||
) AS test_report_id;
|
||
|
||
-- 2. 获取报表列表,验证是否创建成功
|
||
SELECT * FROM public.rpc_get_custom_reports();
|
||
|
||
-- 3. 获取报表定义
|
||
-- 提示:将下面的 UUID 替换为步骤1返回的 test_report_id
|
||
-- SELECT * FROM public.rpc_data_detail_report_info('your-test-report-id-here');
|
||
|
||
-- 4. 执行报表
|
||
-- 提示:将下面的 UUID 替换为步骤1返回的 test_report_id
|
||
-- SELECT * FROM public.rpc_data_detail_rows('your-test-report-id-here');
|
||
|
||
-- 5. 删除测试报表
|
||
-- 提示:将下面的 UUID 替换为步骤1返回的 test_report_id
|
||
-- SELECT public.rpc_delete_custom_report('your-test-report-id-here');
|