Sql 当我加入dim_date时,为什么我会看到几个月的结果
下面是我的简单Postgresql查询Sql 当我加入dim_date时,为什么我会看到几个月的结果,sql,postgresql,Sql,Postgresql,下面是我的简单Postgresql查询 SELECT dd.year_actual as yr, sum("Ordered_Amount") from channel_sales cs JOIN dim_date dd ON cs."date" = dd.date_actual GROUP BY dd.year_actual, cs."Ordered_Amount" 下面是结果。我所期望的是一个包含年度和总金额的单行结果,但它将其分解为2018年的多行。我不确定我在这里做错了什么。 这
SELECT dd.year_actual as yr, sum("Ordered_Amount") from channel_sales cs
JOIN dim_date dd ON cs."date" = dd.date_actual
GROUP BY
dd.year_actual,
cs."Ordered_Amount"
下面是结果。我所期望的是一个包含年度和总金额的单行结果,但它将其分解为2018年的多行。我不确定我在这里做错了什么。
这是我如何进行连接,还是因为我以错误的方式使用GROUPBY子句。我无法计算它的寿命。因为你不是只按年份分组。您还可以按订单金额进行分组,该金额也可以求和()。因此,您实际上是按年度和普通订单金额求和。如果说在2018年,有4个订单金额为100,将显示为2018年的400。这将按订购数量重复。即:
2018,100
2018,100
2018,100
2018,100
2018,200
2018,300
2018,300
将是:
2018,400
2018,200
2018,600
写为:
SELECT dd.year_actual as yr, sum("Ordered_Amount")
from channel_sales cs
JOIN dim_date dd ON cs."date" = dd.date_actual
GROUP BY
dd.year_actual
还要注意,如果这不是一对多或一对一的关系,那么求和结果将是错误的。为了避免这种情况,您可以先求和,然后加入。根据表结构和数据来自何处,甚至可能不需要联接。因为您不只是按年份分组。您还可以按订单金额进行分组,该金额也可以求和()。因此,您实际上是按年度和普通订单金额求和。如果说在2018年,有4个订单金额为100,将显示为2018年的400。这将按订购数量重复。即:
2018,100
2018,100
2018,100
2018,100
2018,200
2018,300
2018,300
将是:
2018,400
2018,200
2018,600
写为:
SELECT dd.year_actual as yr, sum("Ordered_Amount")
from channel_sales cs
JOIN dim_date dd ON cs."date" = dd.date_actual
GROUP BY
dd.year_actual
还要注意,如果这不是一对多或一对一的关系,那么求和结果将是错误的。为了避免这种情况,您可以先求和,然后加入。根据表结构和数据来自何处,可能甚至不需要联接。因为您不是仅按年份分组。因为您不是仅按年份分组。这很简单。。。。。。非常感谢您的快速回复。这很简单。。。。。。非常感谢您的快速回复。