Files
email-tracker/external/duckdb/benchmark/ldbc/queries/interactive-short-2.sql
2025-10-24 19:21:19 -05:00

26 lines
1.1 KiB
SQL

with recursive cposts(m_messageid, m_content, m_ps_imagefile, m_creationdate, m_c_replyof, m_creatorid) AS (
select m_messageid, m_content, m_ps_imagefile, m_creationdate, m_c_replyof, m_creatorid
from message
where m_creatorid = 21990232556256
order by m_creationdate desc
limit 10
), parent(postid,replyof,orig_postid,creator) AS (
select m_messageid, m_c_replyof, m_messageid, m_creatorid from cposts
UNION ALL
select m_messageid, m_c_replyof, orig_postid, m_creatorid
from message,parent
where m_messageid=replyof
)
select p1.m_messageid, COALESCE(m_ps_imagefile,'')||COALESCE(m_content,'') as content, p1.m_creationdate,
p2.m_messageid, p2.p_personid, p2.p_firstname, p2.p_lastname
from
(select m_messageid, m_content, m_ps_imagefile, m_creationdate, m_c_replyof from cposts
) p1
left join
(select orig_postid, postid as m_messageid, p_personid, p_firstname, p_lastname
from parent, person
where replyof is null and creator = p_personid
)p2
on p2.orig_postid = p1.m_messageid
order by m_creationdate desc, p2.m_messageid desc;