带有 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
我有这个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