DispelEvilBot/sql/R__functions_stats.sql

18 lines
545 B
PL/PgSQL

-- Статистика: топ по количеству сообщений.
CREATE OR REPLACE FUNCTION bot.get_top_list()
RETURNS TABLE(u character varying, n character varying, c bigint)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT tu.username, du.nick, count(*) AS cnt
FROM bot.messages m
INNER JOIN bot.tg_users tu ON m.id_user = tu.id_user
INNER JOIN bot.de_users du ON m.id_user = du.id_user
GROUP BY tu.username, du.nick
ORDER BY 3 DESC
LIMIT 10;
END;
$$;