带有 GROUP BY 和 COUNT 的 Postres SQL select

Postres SQL select with GROUP BY and COUNT

我有这个SQLselect

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

有效,但我需要 select 全部来自交易。 但是当我尝试 SELECT * FROM ...... 我得到这个错误: 列“t.account_fk”必须出现在 GROUP BY 子句中或用于聚合函数 对具有相同功能但 select 而不仅仅是 debtor_account 的 select 有什么想法吗?谢谢...

顺便说一句。 Table 方案 here

您可以使用 window 函数:

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;

您似乎需要 window 功能:

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