On Wed, Feb 24, 2021 at 7:24 PM [email protected] <
[email protected]> wrote:
> Hi Jeremy,
>
> I am bit lost for string_agg in PostgreSQL when converting to Sequel.
>
> How can I write this code with Sequel?
>
> SELECT
> "f"."id",
> "f"."uid",
> string_agg(distinct CAST (dirs.uid AS text), ',' order by CAST
> (dirs.uid AS text)) as dirs_uids
> FROM "paths" as "f"
> JOIN dirs ON "f".id = dirs.folder_id
> WHERE (paths.user_idx = 1)
> GROUP BY "f".id, "f"."uid"
> LIMIT 50
>
DB.from{paths.as(:f)}.
select_group{[f[:id], f[:uid]]}.
select_append{string_agg(dirs[:uid].cast(String),
',').distinct.order(dirs[:uid].cast(String))}.
join(:dirs, :folder_id=>:id).
where{{paths[:user_idx]=>1}}.
limit(50)
SELECT "f"."id", "f"."uid", string_agg(DISTINCT CAST("dirs"."uid" AS text),
',' ORDER BY CAST("dirs"."uid" AS text))
FROM "paths" AS "f"
INNER JOIN "dirs" ON ("dirs"."folder_id" = "f"."id")
WHERE ("paths"."user_idx" = 1)
GROUP BY "f"."id", "f"."uid"
LIMIT 50
Thanks,
Jeremy
--
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sequel-talk/CADGZSSd%3DWy3Qbo3LnLAZWUzMtTepZjh00mJLk3xSZPVrkY4naQ%40mail.gmail.com.