有没有办法在 Hive HQL 中将两列相加到另一列中



我希望每天、每周和每月发送的消息数量总和。大约有 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

看起来我可以直接添加带有+的列

相关内容

  • 没有找到相关文章

最新更新