Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5845663
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T12:28:01+00:00 2026-05-22T12:28:01+00:00

I have a payments table that has a user_id and an amount. Users have

  • 0

I have a payments table that has a user_id and an amount. Users have a minimum withdrawal of $5.00, and they can have any number of payments to them. Their total balance isn’t stored anywhere (to keep it simple and avoid synchronization issues), instead it’s found by doing a query like:

SELECT SUM(amount) 
  FROM payment 
 WHERE user_id = 5;

I want to find out the grand total of all balances that meet the withdrawal requirement. What I wish I could do is something like:

  SELECT SUM(SUM(amount)) 
    FROM payment 
   WHERE sum(amount) >= 5.00
GROUP BY user_id;

Unfortunately I get the error

ERROR: aggregates not allowed in WHERE clause

How can I write this query? I’m using postgres 8.4.

Part 2:

I’m not sure if this is even possible, but this payments table also includes payments made by the user: the payment table includes amount, from_user_id, and to_user_id. It’s a single-entry accounting system. It would be great if I could also subtract the payments the user has made. The pseudo-sql is:

SELECT (sum of all amounts) 
 WHERE (sum(amount where to_user_id = 5) - sum(amount where from_user_id = 5)) > 5.00
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T12:28:02+00:00Added an answer on May 22, 2026 at 12:28 pm

    You need to use the HAVING clause

    Never heard anyone try and do nested aggregation. I suggest you do the inner bit separately, either with a with statment or using something like

    select sum(foo) from (select sum(amount) as foo ...having ...)
    

    I believe you want something like this for your second part, though I might be second-guessing.

    with a as(
      select sum(amount) as credit, from_user from payment group by from_user
    ), b as (
      select sum(amount) as debit, to_user from payment group by to_user
    )
    -- glossing over any null values with coalesce:
    select to_user, coalesce(credit,0) - coalesce(debit,0) -- coalesce users perhaps?
    from a outer join b on from_user = to_user
    where coalesce(credit,0) - coalesce(debit,0) > limit -- or vice-versa
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm using SQL-Server 2005. I have two tables Users and Payments which has a
I have a Users table and a Payments table. I need a query which
I have a Users table and a Payments table. I need a query which
Let's say I have a payments table like so: CREATE TABLE Payments ( PaymentID
I have a string coming from a table like can no pay{1},as your payment{2}due
My website has premium videos, for which users have to pay to watch it.
I have a HTML form, which includes radio buttons that the user can select
In an ASP.NET 3.5 site we have a relatively standard payment checkout progess that
Have you ever seen any of there error messages? -- SQL Server 2000 Could
Have you guys had any experiences (positive or negative) by placing your source code/solution

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.