【发布时间】:2020-07-15 09:40:20
【问题描述】:
下面给出三个查询,用于从表 user_ 中获取聚合数据 每日成就。除了逐个分组之外,所有这些都是相同的。
select sum(jsm_amount) from (
select date,user_id,distributor_id,sum(user_daily_achievements.invoiced_amount) as jsm_amount from user_daily_achievements where date>='2020-06-01' and date<'2020-07-01'
group by date,user_id,distributor_id)a;
select sum(jsm_amount) from (
select date,distributor_id,user_id,sum(user_daily_achievements.invoiced_amount) as jsm_amount from user_daily_achievements where date>='2020-06-01' and date<'2020-07-01'
group by date,distributor_id,user_id)a;
select sum(jsm_amount) from (
select distributor_id,user_id,date,sum(user_daily_achievements.invoiced_amount) as jsm_amount from user_daily_achievements where date>='2020-06-01' and date<'2020-07-01'
group by distributor_id,user_id,date)a;
据我了解,这三种情况的总金额应该相同。但我在每个查询中得到不同的值。
数据库:Posgtres 版本:11
【问题讨论】:
-
是的,值应该相同。这两个值是什么?
-
我在三个不同的查询中得到这三个值:518547264、518547008 和 518546848
-
您看到的差异很可能只是由于舍入错误。
-
感谢它似乎是错误的四舍五入
标签: sql postgresql group-by