Postres SQL 使用 GROUP BY 和 COUNT 选择
Posted
技术标签:
【中文标题】Postres SQL 使用 GROUP BY 和 COUNT 选择【英文标题】:Postres SQL select with GROUP BY and COUNT 【发布时间】:2021-03-25 09:26:29 【问题描述】:我有这个 SQL 选择
SELECT t.debtor_account, COUNT(t.debtor_account)
FROM transaction t
GROUP BY t.debtor_account
HAVING COUNT(t.debtor_account) > 2;
哪个有效,但我需要从事务中选择所有。 但是当我尝试 SELECT * FROM ...... 我得到这个错误: 列“t.account_fk”必须出现在 GROUP BY 子句中或用于聚合函数中 任何想法选择具有相同的功能,但全选而不是债务人帐户?谢谢...
顺便说一句。表方案here
【问题讨论】:
【参考方案1】:你可以使用窗口函数:
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;
【讨论】:
【参考方案2】:你似乎想要窗口函数:
SELECT *
FROM (
SELECT t.*, COUNT(*) OVER(PARTITION BY debtor_account) cnt
FROM transaction t
) t
WHERE cnt > 2
【讨论】:
以上是关于Postres SQL 使用 GROUP BY 和 COUNT 选择的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver2008,sql编程,group by 用法