[英]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
子句有關,應該將其與ProductKey
和month
, year
映射。 但是,對於您想要的結果,這實際上不是必需的。
超過分組,它似乎你也期待SUM
的數據相同productkey
, month
和year
值。
嘗試以下代碼:
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.