好小一只
2018-11-02 07:00
采纳率: 23.8%
浏览 1.0k

MySQL中怎么同时sql查询单个交易额,和该交易额占总交易额的百分比。

表一employee:
id employeeId trxMoney
1 员工1号 4000
2 员工2号 5000
3 员工3号 1000

            预期结果集:
            i        employeeId   trxMoney   rate
            1         员工1号       4000          40%
            2         员工2号       5000          50%
            3         员工3号       1000          10%


            目前的sql一:

            SELECT (@i:=@i + 1) AS i , employeeId , trxMoney , SUM(trxMoney), ROUND(trxMoney/SUM(trxMoney),4)*100 AS rate
            FROM employee,(Select @i:=0) B
            GROUP BY employeeId

            但是查询来的是:
                i        employeeId   trxMoney  SUM(trxMoney),  rate
            1         员工1号       4000             4000                   100
            2         员工2号       5000             5000                   100
            3         员工3号       1000             1000                   100

                目前的sql二:

                SELECT (@i:=@i + 1) AS i , employeeId , trxMoney , SUM(trxMoney), ROUND(trxMoney/SUM(trxMoney),4)*100 AS rate
                FROM employee,(Select @i:=0) B

查出来的是:
                i        employeeId   trxMoney  SUM(trxMoney),  rate
            1         员工1号       4000             10000                   40

有哪个大神指导一下。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 胡易卿 2018-11-02 07:40
    已采纳

    sql:

    SELECT
    id AS i,
    employeeId,
    trxMoney,
    CONCAT(
    trxMoney / (
    SELECT
    SUM(trxMoney)
    FROM
    employee
    ) * 100,
    '%'
    ) AS rate
    FROM
    employee;

    图片说明

    评论
    解决 无用 1
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题