You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Supabase函数开发:获取24小时内Top10活跃用户

获取最近24小时活跃度Top10成员的Supabase函数

直接用PostgreSQL函数实现需求,以下是完整代码:

CREATE OR REPLACE FUNCTION get_top_active_users_last_24h()
RETURNS TABLE(user_id UUID, user_name TEXT, message_count INT) AS $$
BEGIN
  RETURN QUERY
    SELECT
      u.uuid AS user_id,
      u.name AS user_name,
      COUNT(m.uuid) AS message_count
    FROM messages m
    JOIN users u ON m.created_by = u.uuid
    WHERE m.created_at >= NOW() - INTERVAL '24 hours'
    GROUP BY u.uuid, u.name
    ORDER BY message_count DESC, u.name ASC
    LIMIT 10;
END;
$$ LANGUAGE plpgsql STABLE;

关键细节说明

  • 表关联逻辑:通过messages.created_by与users.uuid的外键关联,直接替换外键ID为用户真实姓名
  • 时间范围筛选:用NOW() - INTERVAL '24 hours'精准锁定最近24小时内的消息数据
  • 分组统计规则:按用户UUID和姓名分组(PostgreSQL要求SELECT中非聚合字段必须纳入GROUP BY),统计单用户的消息发送总量
  • 排序逻辑:优先按消息数降序排列,同消息数时按姓名升序保证结果排序稳定
  • 结果限制:用LIMIT 10直接截取活跃度最高的前10位用户

调用方式

在Supabase SQL编辑器或客户端执行以下语句获取结果:

SELECT * FROM get_top_active_users_last_24h();

内容的提问来源于stack exchange,提问作者Jedi Schmedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:04:54