首页 > 解决方案 > 内连接返回重复记录

问题描述

我想做一些简单的事情,但我不知道该怎么做。

我的桌子:

Report_Period 实体 标签 用户数 Report_Period_M-1 Report_Period_Q-1 ...
2017-06-30 实体 1 X 471 2017-05-31 2017-03-31 ...
2020-12-31 实体 2 一个 135 2020-11-30 2020-09-30 ...
2020-11-30 实体 3 X 402 2020-10-31 2020-08-31 ...

我想要的是 :

Report_Period 实体 标签 用户数 用户数_M-1 Users_Count_Q-1 ...
2017-06-30 实体 1 X 471 450 438 ...
2020-12-31 实体 2 一个 135 122 118 ...
2020-11-30 实体 3 X 402 380 380 ...

我已经尝试过这段代码,但它重复了记录!我怎样才能避免它?

SELECT M."Entity",M."Tag",M."Report_Period",M."Users Count",
M."Report_Period_M-1",M1."Users Count" AS "Users Count M1",
FROM "DB"."SCHEMA"."PERIOD" M, "DB"."SCHEMA"."PERIOD" M1
WHERE M."Report_Period_M-1"= M1."Report_Period"

感谢您的时间。

问候。

标签: joinsnowflake-cloud-data-platform

解决方案


您的联接子句应包括实体列和标签(我怀疑)

SELECT    M."Entity",
          M."Tag",
          M."Report_Period",
          M."Users Count",
          M."Report_Period_M-1",
          M1."Users Count" AS "Users Count M1",  
FROM      "DB"."SCHEMA"."PERIOD" M, 
         "DB"."SCHEMA"."PERIOD" M1 
WHERE    M."Report_Period_M-1"= M1."Report_Period"
AND      M."Entity" = M1."Entity"
AND      M."Tag" = M1."Tag"

推荐阅读