我目前有一个包含 4 个表的数据库:
我正在尝试获取客户居住城市的百分比。但是,我只想向使用上述经理进行购买的客户展示。目前,这是低于或高于总计 100% 的金额。
当此查询与客户表隔离时,结果加起来正确率为 100%,但它确实需要使用经理用户名作为参数从销售中获取。这是我目前拥有的:
SELECT
(COUNT(c.city) / (SELECT Count(CustID) FROM Customer) * 100) AS percent, c.city AS City
FROM sale s
INNER JOIN customer c ON s.CustID = c.CustID
INNER JOIN room r ON s.RoomID = r.RoomID
INNER JOIN manager m ON r.ManID = m.ManID
WHERE m.UserName = 'manager123'
GROUP BY c.City;
编辑:
我想补充一点,CustID 可能在 sales 表中出现不止一次,此外,它可能为空。不确定计数时是否需要使用 distinct。 将我的问题与此分开后,我觉得有必要提及,因为我仍然无法从结果和不完整的数字中排除这些(总计 <100% 仍在显示)
最佳答案
给你。
SELECT NoCity,COUNT(*)/percent *100 as percentOfCustomerBasedonManager,City
FROM (
SELECT m.UserName,COUNT(c.city) AS NoCity, COUNT(c.CustID) AS percent,c.city AS City FROM
sale s
INNER JOIN customer c ON s.CustID = c.CustID
INNER JOIN room r ON s.RoomID = r.RoomID
INNER JOIN manager m ON r.ManID = m.ManID
GROUP BY c.City ) cityTable WHERE cityTable.UserName = 'manager123'
关于mysql - 使用外键时以百分比形式获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35647374/