On Wed, Jul 30, 2014 at 8:41 PM, Emir Ibrahimbegovic <
emir.ibrahimbego...@gmail.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.

Reply via email to