我希望每天、每周和每月发送的消息数量总和。大约有 500 种不同的消息类型。
我有以下表格:
Table name: messages
int message_type
BIGINT num_sent
string date
Table name: stats
int message_type
BIGINT num_sent_today
BIGINT num_sent_week
BIGINT num_sent_month
表消息每天使用今天日期的新行进行更新。是否有一个配置单元查询可以每天运行来更新stats
表?注意 我无法通过使用WHERE date >= 30 days ago
直接查询消息表来获取运行计数,因为该表太大。我必须从表格统计信息中添加/减去每日值。像这样:
// pseudocode
// Get this table (call it table b) from table messages
int message_type
BIGINT num_sent_today
BIGINT num_sent_seven_days_ago
BIGINT num_sent_thirty_days_ago
// join b with table stats so that I can
// Set stats.num_sent_today = b.num_sent_today
// Set stats.num_sent_week = stats.num_sent_week + b.num_sent_today - b.num_sent_seven_days_ago
// Set stats.num_sent_month = stats.num_sent_month + b.num_sent_today - b.num_sent_thirty_days_ago
看起来我可以直接添加带有+的列