我的目标是在子查询中获得一组客户的第一笔交易,然后将其平均化。这是我正在使用的查询:
SELECT DISTINCT ON (account_id) created_at AS "first_transaction_date"
, account_id
, money_amount
FROM transactions
WHERE status = 'accepted'
我正在获取以下数据
first_transaction_date account_id Money_amount
2017-05-01 1 25
我的问题是我收到了错误的信息,因为这不是该客户的第一笔交易。
感谢任何帮助。
提前致谢
的Stefan
P.S。这是我第一次在这里发帖,所以如果我错过了什么,我很抱歉
答案 0 :(得分:0)
您没有对任何内容进行排序,并且PostgreSQL无法保证行顺序处于创建顺序。 仅仅添加一个order by子句就足够了:
SELECT DISTINCT ON (account_id) created_at AS "first_transaction_date"
, account_id
, money_amount
FROM transactions
WHERE status = 'accepted'
ORDER BY account_id, created_at