【发布时间】:2020-09-12 03:39:02
【问题描述】:
我正在使用下面的代码从两个表中获取数据。但我可以在data1 和data2 列中看到一些重复值。
SELECT DISTINCT a.student_id,a.class,a.sub_id,
stringagg(a.sub_num) OVER (PARTITION BY a.student_id, a.class, a.sub_id
ORDER BY NLSSORT(a.sub_num, 'NLS_SORT=BINARY_CI') ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS data1,
stringagg(b.date) OVER (PARTITION BY b.sub_id
ORDER BY NLSSORT(b.date, 'NLS_SORT=BINARY_CI') ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS data2
from tsg_class a JOIN tsg_date b ON a.student_id = b.student_id
and a.class = b.class
and a.sub_id = b.sub_id
where a.student_id = 38147;
我的结果如下图所示:
Data1 和 Data2 具有重复值,例如 22**** 22**** 22**** 22**** 555555 555555 555555 555555 和 001 001 7WW 7WW D04 D04 MS7 MS7
但我希望它像 22**** 55555 和 001 7ww D04 MS7。
请提出建议。
【问题讨论】:
-
你使用的是哪个数据库,oracle/sql server/mysql等
-
我正在使用 oracle
-
@GeorgeJoseph “PL/SQL(过程语言/结构化查询语言)是 Oracle Corporation 的 SQL 过程语言扩展。”
标签: sql oracle window-functions