WITH j AS (
SELECT uuid_generate_v4() AS uuid,
location."userId",
location."deviceId",
st_makeline(location.shape) AS shape,
date_trunc('day' :: text, location."creationDateTime") AS date
FROM (SELECT olocations.id,
olocations."userId",
olocations."deviceId",
olocations."creationDateTime",
olocations.shape
FROM olocations
GROUP BY olocations.id, olocations."creationDateTime"
ORDER BY olocations."creationDateTime") location
WHERE ((location."deviceId" = '89984320001415261239' :: text) AND
(location."userId" = 'b6951aea-0909-4cd6-bd92-71e727cc39ec' :: uuid))
GROUP BY location."deviceId", location."userId", (date_trunc('day' :: text, location."creationDateTime"))
)
SELECT uuid_generate_v4() AS uuid,
j."deviceId",
j.date,
st_astext(st_multi(st_linemerge(st_union(j.shape)))) AS multiline
FROM j
GROUP BY j.date, j."deviceId"
ORDER BY j.date
LIMIT 1;