【发布时间】:2021-01-12 19:06:27
【问题描述】:
我有 4 个表 A、B、C 和 D,每个表 3 列
A- aa, ab, ac
B- ba, bb, bc
C- ca, cb, cc
D- da, db, dc
我需要加入 4 个表并添加一个新的计算列 (aa + ab + ac)。我的查询是
SELECT A.aa, A.ab, A.ac, B.ba, B.bb, B.bc, C.ca, C.cb, C.cc, D.da, D.db, D.dc,(A.aa + A.ab + A.ac) AS total
FROM A
LEFT JOIN B
ON A.aa = B.ba
LEFT JOIN C
ON A.ab = C.ca
LEFT JOIN D
ON A.aa = D.da;
表连接正常,但计算列对所有行返回 NULL。我哪里出错了,还有其他方法吗?
【问题讨论】:
-
似乎有些 aa、ab、ac 是 NULL,因此 sum 为 NULL。也许在求和之前将
ZEROIFNULL( )函数应用于每一列,以将缺失值视为零? -
你能分享一下加入前后数据的截图吗?
-
谢谢。添加 ZEROIFNULL() 解决了这个问题。
标签: sql left-join snowflake-cloud-data-platform calculated-columns