我在测试SQL中的一个查询,在这个查询中,我需要以逗号分隔列表的形式连接值,它是有效的,我只是遇到了重复值的问题。
以下是查询:
SELECT t0.id_marcas AS CodMarca,
t0.nombremarcas AS NombreMarca,
t0.imagenmarcas,
(SELECT String_agg((t2.name), ', ')
FROM exlcartu_devcit.store_to_cuisine t1
INNER JOIN exlcartu_devcit.cuisine t2
ON t1.cuisine_id = t2.cuisine_id
WHERE store_id = (SELECT TOP 1 store_id
FROM exlcartu_devcit.store
WHERE id_marcas = t0.id_marcas
AND status = 1)) AS Descripcion,
t0.logo,
t0.imagen,
(SELECT TOP 1 preparing_time
FROM exlcartu_devcit.store
WHERE id_marcas = t0.id_marcas
AND status = 1) AS Tiempo,
t0.orden,
(SELECT TOP 1 Avg(minimum_amount)
FROM exlcartu_devcit.store_delivery_zone
WHERE id_marcas = t0.id_marcas) AS MontoMinimo
FROM exlcartu_devcit.[marcas] t0 我认为解决方案可以只是向查询添加一个DISTINCT,以避免以这种方式重复值...
(SELECT STRING_AGG(DISTINCT (t2.name), ', ') AS Descripcion但是显然STRING_AGG()函数不支持它,你知道如何避免重复值吗?
发布于 2019-09-11 02:03:14
最简单的方法就是select from select,如下所示:
with dups as (select 1 as one union all select 1 as one)
select string_agg(one, ', ') from (select distinct one from dups) q;vs原创
with dups as (select 1 as one union all select 1 as one)
select string_agg(one, ', ') from dups;https://stackoverflow.com/questions/57875620
复制相似问题