mysql - 使用外键时以百分比形式获取结果

标签 mysql

我目前有一个包含 4 个表的数据库:

  • 客户
  • 销售(CustID 和 RoomID fk)
  • 房间 (ManID fk)
  • 经理

    我正在尝试获取客户居住城市的百分比。但是,我只想向使用上述经理进行购买的客户展示。目前,这是低于或高于总计 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/

    相关文章:

    php - MySQL查询,多列求和

    php mysql查询字符串数组

    mysql - 在 MySQL 中组合多个查询

    java - 在不启动事务的情况下通过 Hibernate 对 MySQL 数据库运行查询的含义是什么?

    php - 创建市场的起点

    mysql - 如何跳过 sqlSave() 命令中的主键?

    php - 将多个动态数组传递给 php 一些隐藏的

    java - jtable 仅从数据库返回一行

    mysql - 存储过程中的 CALL 不起作用

    java - Android -php-mysql- JSON连接问题