PostgreSQL中的第一个事务

时间:2017-05-11 10:10:38

标签: postgresql

我的目标是在子查询中获得一组客户的第一笔交易,然后将其平均化。这是我正在使用的查询:

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。这是我第一次在这里发帖,所以如果我错过了什么,我很抱歉

1 个答案:

答案 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