我有两张表:“debt_period”和“payments”。我需要从他们那里看一看。有一个时期可以是几次支付的情况。因此,在这种情况下,我必须将付款金额汇总在一列中,并在另一列中列出逗号分隔的日期。 我使用string_agg(to_char(p.payment_date,'DD.MM.YYYY')和窗口函数。 这工作正常。问题是字符串中的日期不是按时间顺序排列的。我如何订购它们?如何在“string_agg”中为窗口函数(postgresql)排序字符串?
CREATE MATERIALIZED VIEW base.v_period_payments AS
SELECT DISTINCT
dp.card_id,
dp.year,
dp.month,
dp.debt_amount,
string_agg(to_char(p.payment_date, 'DD.MM.YYYY'), ', ') OVER (PARTITION BY p.period_id) AS
pay_dates
FROM base.debt_period dp
LEFT JOIN base.payments p on (p.period_id = dp.id)
WHERE dp.card_id = '№001137'
ORDER BY dp.card_id
@a_horse_with_no_name有一个错误:[0A000]错误:总ORDER BY不是为窗口函数实现 –