テーブル構造:
- 販売テーブル:ID、sellerID、buyerZipcode、金額
- 売り手テーブル:ID、sellerName
- マーケットテーブル:ID、marketName
- SellerMarketLinkテーブル:ID、sellerID、marketID
- MarketZipCodeテーブル:ID、marketID、zipCode
サンプルデータ
質問への最初のコメントの情報をエンコードする
マーケットテーブル
1、「ストアA、最初の市場」
2、「ストアA、2番目の市場」
3、「ストアB市場」
MarketZipCodeテーブル
1、1、1
2、1、2
...
7、1、7
8、1、8
9、2、4
10、2、5
...
14、2、9
15、2、10
16、3 1
17、3、2
18、3、3
19、3、8
20、3、9
21、3、10
22、3、11
23、3、12
クエリ
各売り手の市場での総売上高。1つの郵便番号が複数の市場の一部になる可能性があるため、「Total Sales」のすべての値の合計が、Salesテーブルのすべての「amount」値の合計よりも大きくなる可能性があることに注意してください。
select Market.marketName, Seller.sellerName, sum(Sales.amount) as "Total Sales"
from Sales join Seller join SellerMarketLink join Market join MarketZipCode
on (Sales.sellerID = Seller.ID AND Seller.ID = SellerMarketLink.sellerID
AND SellerMarketLink.marketID = Market.ID
AND Market.ID = MarketZipCode.marketID
AND MarketZipCode.zipCode = Sales.buyerZipCode)
group by Market.ID, Market.marketName, Seller.ID, Seller.sellerName
order by Market.marketName, Seller.sellerName