SELECT merchant_id, shop_type, gmv, pay_count, verify_count, settle_time, settle_status
FROM analytics_merchant_stat_history
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
UNION ALL
SELECT merchant_id, shop_type, gmv, pay_count, verify_count, settle_time, settle_status
FROM analytics_merchant_stat_today
WHERE #{endDate} >= CURDATE()
AND #{startDate} <= CURDATE()
SELECT COALESCE(SUM(today_gmv), 0) AS totalGmv,
COALESCE(ROUND(SUM(today_gmv) / NULLIF(SUM(pay_user_count), 0), 2), 0) AS avgOrderAmount
FROM analytics_daily_summary
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
SELECT stat_date AS statDate,
DATE_FORMAT(stat_date, '%m-%d') AS label,
COALESCE(today_gmv, 0) AS gmv
FROM analytics_daily_summary
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
ORDER BY stat_date ASC
SELECT business_category AS code,
COALESCE(SUM(gmv), 0) AS gmv
FROM (
SELECT business_category, gmv
FROM analytics_category_daily_history
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
UNION ALL
SELECT business_category, gmv
FROM analytics_category_daily_today
WHERE #{endDate} >= CURDATE()
AND #{startDate} <= CURDATE()
) t
GROUP BY business_category
ORDER BY gmv DESC
SELECT d.stat_date AS statDate,
DATE_FORMAT(d.stat_date, '%m-%d') AS label,
COALESCE(d.avg_order_amount, 0) AS avgOrderAmount,
COALESCE(m.avgPayCount, 0) AS avgPayCount
FROM analytics_daily_summary d
LEFT JOIN (
SELECT stat_date,
ROUND(SUM(pay_count) / NULLIF(COUNT(DISTINCT CASE WHEN pay_count > 0 THEN merchant_id END), 0), 2) AS avgPayCount
FROM (
SELECT stat_date, merchant_id, pay_count
FROM analytics_merchant_stat_history
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
UNION ALL
SELECT CURDATE() AS stat_date, merchant_id, pay_count
FROM analytics_merchant_stat_today
WHERE #{endDate} >= CURDATE()
AND #{startDate} <= CURDATE()
) pay
GROUP BY stat_date
) m ON d.stat_date = m.stat_date
WHERE d.stat_date >= #{startDate}
AND d.stat_date <= #{endDate}
ORDER BY d.stat_date ASC
SELECT merchant_id AS merchantId,
MAX(shop_type) AS shopType,
COALESCE(SUM(gmv), 0) AS gmv
FROM (
) t
GROUP BY merchant_id
ORDER BY gmv DESC
LIMIT 10
SELECT base.merchant_id AS merchantId,
base.shop_type AS shopType,
base.settle_time AS settleTime,
base.settle_status AS settleStatus,
COALESCE(period.gmv, 0) AS gmv
FROM (
SELECT merchant_id,
MAX(shop_type) AS shop_type,
MAX(settle_time) AS settle_time,
MAX(settle_status) AS settle_status
FROM (
SELECT merchant_id, shop_type, settle_time, settle_status
FROM analytics_merchant_stat_history
WHERE settle_status = 1
AND settle_time IS NOT NULL
AND settle_time >= #{startDate}
AND settle_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
UNION ALL
SELECT merchant_id, shop_type, settle_time, settle_status
FROM analytics_merchant_stat_today
WHERE settle_status = 1
AND settle_time IS NOT NULL
AND settle_time >= #{startDate}
AND settle_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
) settled
GROUP BY merchant_id
) base
LEFT JOIN (
SELECT merchant_id, COALESCE(SUM(gmv), 0) AS gmv
FROM (
) t
GROUP BY merchant_id
) period ON base.merchant_id = period.merchant_id
ORDER BY base.settle_time DESC
SELECT stat_date AS statDate,
DATE_FORMAT(stat_date, '%m-%d') AS label,
COALESCE(merchant_review_rate, 0) AS reviewRate
FROM analytics_daily_summary
WHERE stat_date >= #{startDate}
AND stat_date <= #{endDate}
ORDER BY stat_date ASC