簡體   English   中英

SQL按ID /季度分組

[英]SQL Group by ID/Quarter Issue

我正在嘗試按月份查找產品的整體銷量(由ProductKey標識)

我發現某些情況下它將給定月份的某些“產品密鑰”分組

select distinct pkm.productkey, dateparts.month,year,dateparts.SalesAmount
from dateparts
inner join(
select distinct productkey, month, "salesamount"=sum(salesamount)
from dateparts
group by productkey,Month 
) pkm on pkm.ProductKey = dateparts.ProductKey 
and pkm.salesamount=dateparts.salesamount
order by pkm.productkey, dateparts.month,year  

Expected

PK      MM      YY              SALESAM
266     9       2011        183.9382
266     10      2011        183.9382
267     1       2012        1011.66


Actual

PK      MM      YY              SALESAM
266     9       2011        183.9382
266     10      2011        183.9382
267     1       2012        202.332
267     1       2012        809.328 

為什么不簡單地在沒有inner join聯接的情況下進行聚合呢?

select productkey, month, year, sum(SalesAmount)
from dateparts d 
group by productkey, month, year;

您的問題可能與ON子句有關,應該將其與ProductKeymonthyear映射。 但是,對於您想要的結果,這實際上不是必需的。

超過分組,它似乎你也期待SUM的數據相同productkeymonthyear值。

嘗試以下代碼:

select productkey, month, year, SUM(SalesAmount)
  from dateparts
 group by productkey, month,year
 order by productkey, month,year  

希望我能幫上忙!

問題在於您的加入。

您可以嘗試以下嗎?

select distinct pkm.productkey, dateparts.month,year,dateparts.SalesAmount
from dateparts
inner join(
select distinct productkey, month, sum(salesamount) as salesAmount1
from dateparts
group by productkey,Month 
) pkm on pkm.ProductKey = dateparts.ProductKey 
and pkm.salesamount1=dateparts.salesamount
order by pkm.productkey, dateparts.month,year

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM