gpt4 book ai didi

mysql - 使用 MYSQL 计算市场份额

转载 作者:行者123 更新时间:2023-11-29 12:52:08 25 4
gpt4 key购买 nike

我有一个数据库,记录了商店的每笔销售。我可以查询以获得每个商店的总销售额:

Select SellerName, Count(*) as Sales From salesData Group By SellerName...

如何创建查询来显示每个 SellerName 的市场份额?

即销售数量/总销售额

最佳答案

通过一些改进来回答:

  • 无需将邮政编码放入 SQL 中两次,只需将其作为内部查询和外部查询之间的条件即可。 (见下文)

  • 当然希望您将 BuyerZipCode 存储为 VARCHAR,而不是 INTEGER。因此请引用您的邮政编码,例如:'90210' 而不是 90210

  • 除非必要,否则请避免在 SQL 查询中使用数字格式(乘以 100、四舍五入、连接 %)。无论您的前端是什么(PHP、Excel、Crystal Reports),都可以很好地进行格式化。 -- 这是个人偏好,有些人会争论。

  • 缩进以提高可读性。 ——又是个人的事情;不会影响查询的执行,但有助于调试并鼓励其他人帮助您检查代码。

代码:

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 子句即可。

关于mysql - 使用 MYSQL 计算市场份额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com