【问题标题】:Percentage of the same column in SQLSQL中同一列的百分比
【发布时间】:2015-02-10 09:05:15
【问题描述】:

我需要在 SQL 中计算总数的百分比 我有

客户编号、数量

我试过的是:

SELECT 
   customer_id, 
   sum(quantity) / (quantity * 100)
FROM MyTable
Group by customer_id

【问题讨论】:

标签: sql sql-server


【解决方案1】:

您需要总计来计算百分比,因此请使用子查询。为避免为每个用户重新计算总数,请交叉加入计算一次的总数:

select customer_id, quantity * 100 / total
from MyTable 
cross join (
    select sum(quantity) total
    from MyTable) x

【讨论】:

  • 非常感谢您的快速帮助。当然你应该计算总数。
【解决方案2】:

尝试类似fiddle

SELECT customer_id, (sum(quantity) / count(quantity ) * 100)
FROM MyTable 
Group by customer_id

【讨论】:

    【解决方案3】:

    最有效的方法是使用sum () over。试试这个。

    SELECT 
       customer_id, 
       (quantity * 100)/sum(quantity) over() 
    FROM MyTable
    

    【讨论】:

      【解决方案4】:

      只需使用子选择:

      Select customer_id, quantity, quantity / sum(quantity) * 100 per
      From
      (SELECT customer_id, 
         sum(quantity) quantity
      FROM MyTable
      Group by customer_id) a
      

      【讨论】:

        【解决方案5】:

        您需要先获取总数量才能计算客户数量百分比。

        DECLARE @TotalQty int
        set @TotalQty = (select sum(Amount) FROM tbltemp)    
        SELECT id, Amount * 100 / @TotalQty  FROM tbltemp 
        

        【讨论】:

          【解决方案6】:
          DECLARE @TotalQty int
          SET @TotalQty = (SELECT SUM(Amount) FROM tbltemp)    
          SELECT id, Amount * 100 / @TotalQty  FROM tbltemp 
          

          【讨论】:

            猜你喜欢
            • 2021-10-26
            • 1970-01-01
            • 2014-02-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-01-25
            • 1970-01-01
            相关资源
            最近更新 更多