From: | Chris Curvey <chris(at)chriscurvey(dot)com> |
---|---|
To: | Emir Ibrahimbegovic <emir(dot)ibrahimbegovic(at)gmail(dot)com> |
Cc: | pgsql <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Inconsistent results postgresql |
Date: | 2014-07-31 01:25:33 |
Message-ID: | CADfwSsAP=paa6MRVawOf0-1F6B+LrdY1oFBW4jU3_nrO5eRESg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, Jul 30, 2014 at 8:41 PM, Emir Ibrahimbegovic <
emir(dot)ibrahimbegovic(at)gmail(dot)com> wrote:
> Hello all,
>
> I've got two queries which should produce the same results but they don't
> for some reason, please consider these :
>
> SELECT date_trunc('day', payments.created_at) "day", SUM("payments"."amount") AS sum_id FROM "payments"
> INNER JOIN "users" ON "users"."id" = "payments"."user_id" WHERE "payments"."currency" = 'gbp' AND (payments.refunded_date is null)
> AND (users.deleted_at is null)
> AND (users.subscribed_at between '2014-07-07 00:00:00.000000' and '2014-07-07 23:59:59.999999')
> AND ("payments"."created_at" BETWEEN '2014-07-07 00:00:00.000000' AND '2014-07-07 23:59:59.999999')GROUP BY 1ORDER by 1 asc
>
> It produces this :
>
> day | sum_id------------------------------"2014-07-07 00:00:00" | 1863.85
>
> But when I try to group by day at looking at 30 days period with this
> query :
>
> SELECT date_trunc('day', payments.created_at) "day", SUM("payments"."amount") AS sum_id FROM "payments"
> INNER JOIN "users" ON "users"."id" = "payments"."user_id" WHERE "payments"."currency" = 'gbp' AND (payments.refunded_date is null)
> AND (users.deleted_at is null)
> AND (users.subscribed_at between '2014-06-30 00:00:00.000000' and '2014-07-30 23:59:59.999999')
> AND ("payments"."created_at" BETWEEN '2014-06-30 00:00:00.000000' AND '2014-07-30 23:59:59.999999')GROUP BY 1ORDER by 1 asc
>
> It produces this (truncated to include the important data only) :
>
> day | sum_id------------------------------"2014-07-07 00:00:00" | 1898.84
>
> So looking for same date using different date range I get different
> results, how is this even possible? Can I look at something else? I'm
> really stuck here
>
> Thanks
>
Remove the sum (just select "payments.amount") and the GROUP BY and run
your queries. You'll see that you're getting different rows included than
you think you are.
--
I asked the Internet how to train my cat, and the Internet told me to get a
dog.
From | Date | Subject | |
---|---|---|---|
Next Message | CS_DBA | 2014-07-31 02:37:38 | corrupt data from invalid recovery |
Previous Message | David G Johnston | 2014-07-31 01:21:20 | Re: Inconsistent results postgresql |