提问人:Ashwini 提问时间:11/16/2023 更新时间:11/16/2023 访问量:21
如何在第 1 列中查找原始编号
How to find original number in column1
问:
在 Snowflake 中编写 SQL 查询的最佳或最具表现力的方法是什么
需要找到该逻辑的原始编号是
列 5 = 0 和列 1 = 'qw%'
以 qw 开头的最后 3 位数字 = 相应原始数字的最后 3 位数字
将具有相同的 column2,column3,column4 值
列 1 | 专栏 2 | 专栏 3 | 专栏 4 | 专栏5 |
---|---|---|---|---|
12345 | 23 | 11 | 45242 | 7890 |
QW345系列 | 23 | 11 | 45242 | 0 |
23981 | 56 | 22 | 45243 | 6678 |
QW981系列 | 56 | 22 | 45243 | 0 |
99765 | 31 | 90 | 45244 | 3345 |
QW765系列 | 31 | 90 | 45244 | 0 |
44871 | 78 | 45 | 45245 | 2345 |
QW871型 | 78 | 45 | 45245 | 0 |
示例输出如下:
original_number | 山坳 |
---|---|
12345 | QW345系列 |
23981 | QW981系列 |
99765 | QW765系列 |
44871 | QW871型 |
答:
1赞
SelVazi
11/16/2023
#1
您需要通过 column1 的最后 3 位数字自联接表,然后使用 和 应用条件聚合:GROUP BY
MAX()
select max(case when t.Column1 not like 'qw%' then t.Column1 end) as original_number,
s.Column1 as col
from your_table t
inner join (
select Column1
from your_table
where Column5 = 0 and column1 like 'qw%'
) s on SUBSTRING(s.Column1, 3) = SUBSTRING(t.Column1, 3)
group by s.Column1;
评论