【问题标题】:Postres SQL select with GROUP BY and COUNTPostres SQL 使用 GROUP BY 和 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

【问题讨论】:

    标签: sql postgresql select count aggregate-functions


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多