74 lines
1.7 KiB
MySQL
74 lines
1.7 KiB
MySQL
|
WITH
|
||
|
----------raw message content---------------
|
||
|
ext AS (
|
||
|
SELECT
|
||
|
-- t.filename
|
||
|
(t.mdate - ((EXTRACT(DOW FROM t.mdate) - 5 + 7) % 7) * INTERVAL '1 day')::date AS week_ending
|
||
|
,t.mdate
|
||
|
,message->>'text' markdown
|
||
|
,to_char(row_number() OVER (partition by (t.mdate - ((EXTRACT(DOW FROM t.mdate) - 5 + 7) % 7) * INTERVAL '1 day')::date),'FM000') seq
|
||
|
FROM
|
||
|
rlarp.thirtysec t
|
||
|
ORDER BY
|
||
|
t.mdate DESC
|
||
|
)
|
||
|
----------create unqiue list of weeks-------
|
||
|
,wk AS (
|
||
|
SELECT
|
||
|
week_ending
|
||
|
,'# '||week_ending markdown
|
||
|
,to_char(row_number() OVER (ORDER BY week_ending ASC),'FM000') seq
|
||
|
FROM
|
||
|
ext
|
||
|
CROSS JOIN (VALUES ('A'),('B')) r (flag)
|
||
|
GROUP BY
|
||
|
week_ending
|
||
|
ORDER BY
|
||
|
week_ending ASC
|
||
|
)
|
||
|
,wkh AS (
|
||
|
SELECT
|
||
|
w.week_ending
|
||
|
,w.seq||'.'||'000' || '.' || r.flag seq
|
||
|
,CASE r.flag
|
||
|
WHEN 'A' THEN w.markdown
|
||
|
WHEN 'B' THEN ''
|
||
|
END markdown
|
||
|
FROM
|
||
|
wk w
|
||
|
CROSS JOIN (VALUES ('A'),('B')) r (flag)
|
||
|
)
|
||
|
--------level 2 message header----------
|
||
|
,msg AS (
|
||
|
SELECT
|
||
|
e.week_ending
|
||
|
,w.seq || '.' || e.seq || '.' || r.flag seq
|
||
|
,CASE r.flag
|
||
|
WHEN 'A' THEN '## [[]]'
|
||
|
WHEN 'B' THEN e.markdown
|
||
|
WHEN 'C' THEN ''
|
||
|
END markdown
|
||
|
-- ,r.flag
|
||
|
FROM
|
||
|
ext e
|
||
|
CROSS JOIN (VALUES ('A'),('B'),('C')) r (flag)
|
||
|
INNER JOIN wk w ON
|
||
|
w.week_ending = e.week_ending
|
||
|
)
|
||
|
,stack AS (
|
||
|
SELECT
|
||
|
week_ending
|
||
|
,seq
|
||
|
,markdown
|
||
|
FROM
|
||
|
msg
|
||
|
UNION ALL
|
||
|
SELECT
|
||
|
week_ending
|
||
|
,seq
|
||
|
,markdown
|
||
|
FROM
|
||
|
wkh
|
||
|
)
|
||
|
SELECT * FROM stack order by seq limit 1000
|