postgrePostres带有GROUP BY和COUNT的SQL select



我有这个SQL选择

SELECT t.debtor_account, COUNT(t.debtor_account)
FROM transaction t
GROUP BY t.debtor_account
HAVING COUNT(t.debtor_account) > 2;

哪些工作,但我需要从事务中选择所有。但当我尝试从……中选择*时。。。。。。我得到这个错误:列";t.account_fk";必须出现在GROUP BY子句中或在聚合函数中使用对于具有相同功能的select,但使用select all而不仅仅是debtor_account,有什么想法吗?谢谢

Btw。此处为表格方案

您可以使用窗口函数:

SELECT t.*
FROM (SELECT t.*, COUNT(*) OVER (PARTITION BY t.debtor_account) as cnt
FROM transaction t
) t
WHERE cnt > 2
ORDER BY debtor_account;

您似乎想要窗口函数:

SELECT *
FROM (
SELECT t.*, COUNT(*) OVER(PARTITION BY debtor_account) cnt
FROM transaction t
) t
WHERE cnt > 2

相关内容

  • 没有找到相关文章

最新更新