首页 > 解决方案 > 加入两个数据集以获得最佳结果

问题描述

提前致谢!这是一个有点长的问题,但希望它清晰简洁。

我有两个不同的查询带来两个数据集。

两个数据集都为相似区域带来相同粒度的数据。

第一个数据集在一个季节的每个月有多个快照,因此对于一个季节的相同谷物,每个季节它具有三个不同的指标值。

数据集 1 ( country , season , month , metric 是列名) (1. A , fall, 9/1, 1 是列的记录)

国家 季节 月度 指标

  1. A、秋季、9/1、1
  2. A、秋季、10/1、2
  3. A、秋季、11/1、3

其中,由于第二个数据集有一个季节的快照(仅淡季一个月),因此每个季节只有一个快照。

数据集 2

国家 季节 月度 指标

  1. A , 秋天 , 9/1 , 4

我目前的完全外连接方法给了我以下输出

国家 季节 月份 metric1 metric2

  1. A、秋季、9/1、1、4

  2. A、秋季、10/1、2、

  3. A、秋季、11/1、3、

**请注意,如果使用 nvl,10/1 和 11/1 的 metric2 为空白或零,但我们需要在这两个月内填充相同的值 4,以及 如何实现这一点

或最终输出应该看起来像这样

国家 季节 月份 metric1 metric2

  1. A、秋季、9/1、1、4

  2. A、秋季、10/1、2、4

  3. A、秋季、11/1、3、4

标签: sqlsnowflake-cloud-data-platformsnowflake-tasksnowsql

解决方案


我根本不熟悉 Snowflake,但假设它使用相当标准的 SQL,这应该很简单:

SELECT a.country, a.season, a.month, a.metric AS metric1, b.metric AS metric2
FROM dataset1 a
INNER JOIN dataset2 b
ON a.country = b.country AND a.season = b.season

即它不应该需要一个完整的外部连接,并且应该只需要匹配国家和季节。PS 如果您在问题中展示了您尝试过的 SQL,这将有所帮助。


推荐阅读