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

时间:2014-11-14 05:32:47

标签: hadoop mapreduce hive hiveql

我希望每天,每周和每月运行我发送的邮件数量。大约有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

每天都会更新表格消息,并在今天更新新行。我是否可以每天运行一个hive查询来更新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

1 个答案:

答案 0 :(得分:5)

看起来我可以直接用+

添加列