我有一个数据库,记录了每一次商店的销售情况。我可以查询每一家商店的总销售额:
Select SellerName, Count(*) as Sales From salesData Group By SellerName...如何创建一个查询来显示每个SellerName的市场份额?
即销售数量/销售总额
发布于 2014-07-03 19:39:03
回答并作出一些改进:
BuyerZipCode存储为VARCHAR,而不是INTEGER。因此,引用您的ZIP,例如:'90210'而不是90210。代码:
SELECT SellerName
, count(*) ytd
, count(*)/(SELECT count(*)
FROM onlineData
WHERE BuyerZipCode = o.BuyerZipCode) share
FROM onlineData o
WHERE BuyerZipCode = '90210'
GROUP BY SellerName, BuyerZipCode
Order BY ytd DESC
LIMIT 0, 700 ;编辑:刚刚修改了GROUP BY SellerName -> GROUP BY SellerName, BuyerZipCode。当您查找一个邮政编码(例如90210 )时,它不会伤害或更改结果,但是如果您想要多个区域( WHERE BuyerZipCode IN ('90210', '90211', '90212') ),那么这很重要。对于每个邮政编码的市场份额计算,只需完全删除WHERE条款即可。
发布于 2014-07-03 19:08:35
首先你会发现总销售额
Select sum(salesAmount) as totalSalesAmount From salesData然后用这个金额来计算每个销售人员的百分比
Select SellerName, sum(salesAmount)/totalSalesAmount as Sales From salesData Group By SellerName...如果您想要它的花哨,您可以在一个查询中使用相同的表并用不同的名称投影它。
发布于 2014-07-03 19:47:45
SELECT SellerName, Count(*) as Sales, (Count(*)/(SELECT Count(*) FROM salesData))*100 as salesPerCent
From salesData Group By SellerNamehttps://stackoverflow.com/questions/24561386
复制相似问题