【发布时间】:2019-06-12 08:39:10
【问题描述】:
我在列中有重复的agreementnumber 和重复的telephone,我想在列中获得唯一的agreementnumber,它对应的唯一的telephone。
我在 SQL 中编写了查询,它给了我唯一的 agreementnumber,但行中的 telephone 是重复的,但我想要唯一的电话号码。
代码:
select agreementnumber,
max(case when rn = 1 then telephone end) telephone1,
max(case when rn = 2 then telephone end) telephone2,
max(case when rn = 3 then telephone end) telephone3,
max(case when rn = 4 then telephone end) telephone4,
max(case when rn = 5 then telephone end) telephone5
from
(
select agreementnumber, telephone,
row_number() over(partition by agreementnumber order by telephone) rn
from alternate_mobile
) src
group by agreementnumber;
我想要以下输出。 col1 和 col2,col3,col4,col4 中的唯一值。
col1 col2 col3 col4`` AGMTNO phone1 phone2 phone3
【问题讨论】:
-
您想做一些复杂的事情,但似乎不是……给我们您的数据样本和想要的数据集。
-
也请标记适当的数据库名称。
-
我认为这个例子,在这种情况下,虽然总是很受欢迎,但并不是完全必要的。很明显,他想将前 5 部电话分成 5 列,丢弃其余部分,并删除那些相等的部分。您可以准备一组基本数据进行测试。
-
AGREEMENTNUMBER TELEPHONE TN3000CD0027934 8608766694 TN3000CD0027934 8608766694 AP3019CD0012936 9701256775 AP3075CD0029548 9701256775 AP3075CD0029548 9382615863 AP3075CD0029548 8768127359这是样本数据。跨度>
标签: sql