内部不同 String_Agg
Distinct inside String_Agg
我正在做一项学校作业,不过我已经完成了,因为我不能在 String_Agg
中使用 distinct。但是我不止一次得到'SNS',所以我在想是否有办法区分它所以我只得到了一次。
我尝试了 distinct
,但发现它不适用于 string_agg
,现在我正在尝试使用子查询,但我不知道该怎么做。
select FAG$.FagID, FagNavn, STRING_AGG(Lektion$.LaererID, ',') 'Lærer'
from Fag$
join Lektion$
on Fag$.FagID= Lektion$.FagID
group by Fag$.FagID, FagNavn, LaererID
我希望输出为:
"NET = KBEN, SNS"
示例,而不是
"NET = KBEN"
"NET = SNS, SNS, SNS"
我有重复项,所以我想去掉重复项,如果可能的话? :)
您的 GROUP BY
应该在 SELECT
中有 未聚合的 列。 STRING_AGG()
是聚合函数。所以你可能想要:
select f.FagID, FagNavn, STRING_AGG(l.LaererID, ',') as Lærer
from Fag$ f join
Lektion$ l
on f.FagID = l.FagID
group by f.FagID, FagNavn;
如果您仍然重复(使用 id
似乎不太可能,那么您需要使用某种子查询来删除重复项。
从组中删除 LaererID
select FAG$.FagID, FagNavn, STRING_AGG(Lektion$.LaererID, ',') 'Lærer'
from Fag$
join Lektion$
on Fag$.FagID= Lektion$.FagID
group by Fag$.FagID, FagNavn
我正在做一项学校作业,不过我已经完成了,因为我不能在 String_Agg
中使用 distinct。但是我不止一次得到'SNS',所以我在想是否有办法区分它所以我只得到了一次。
我尝试了 distinct
,但发现它不适用于 string_agg
,现在我正在尝试使用子查询,但我不知道该怎么做。
select FAG$.FagID, FagNavn, STRING_AGG(Lektion$.LaererID, ',') 'Lærer'
from Fag$
join Lektion$
on Fag$.FagID= Lektion$.FagID
group by Fag$.FagID, FagNavn, LaererID
我希望输出为:
"NET = KBEN, SNS"
示例,而不是
"NET = KBEN"
"NET = SNS, SNS, SNS"
我有重复项,所以我想去掉重复项,如果可能的话? :)
您的 GROUP BY
应该在 SELECT
中有 未聚合的 列。 STRING_AGG()
是聚合函数。所以你可能想要:
select f.FagID, FagNavn, STRING_AGG(l.LaererID, ',') as Lærer
from Fag$ f join
Lektion$ l
on f.FagID = l.FagID
group by f.FagID, FagNavn;
如果您仍然重复(使用 id
似乎不太可能,那么您需要使用某种子查询来删除重复项。
从组中删除 LaererID
select FAG$.FagID, FagNavn, STRING_AGG(Lektion$.LaererID, ',') 'Lærer'
from Fag$
join Lektion$
on Fag$.FagID= Lektion$.FagID
group by Fag$.FagID, FagNavn