Calculation of percentage of group count(*)

前端 未结 4 719
没有蜡笔的小新
没有蜡笔的小新 2021-01-01 02:58
Select * from Namelist;
Name      Age
Sathish   25
Sathish   65
Sathish   55
Sathish   45
Sathish   35
Jana      55
Jana      25
Jana      10
Bala      55
Bala               


        
相关标签:
4条回答
  • 2021-01-01 03:23

    This is a slightly sexier version of some of the other answers - note the use of sum(100) to avoid the longer (and more mundane) count(*) * 100 :)

    select name, count(*) as count, sum(100) / total as percentage
    from namelist
    cross join (select count(*) as total from namelist) x
    group by 1
    
    0 讨论(0)
  • 2021-01-01 03:25

    This query(not tested) should work :

    SELECT Name,
    COUNT(*) AS Count,
    (COUNT(*) / _total ) * 100 AS Percentege
    FROM Namelist,
    (SELECT COUNT(*) AS _total
      FROM Namelist) AS myTotal
    GROUP BY Name;
    
    0 讨论(0)
  • 2021-01-01 03:39
    select
    name,
    count(name) as `count`,
    count(name)/(select count(*) from namelist)*100 as pct
    from namelist
    group by name
    
    0 讨论(0)
  • 2021-01-01 03:42

    replace column name and try this:

    SELECT  iName, 
        COUNT(iName) AS `Count`, 
        concat(FORMAT(((COUNT(iName) * 100) / NewPeople.iCount),2),'%') AS `Percentage`
    FROM   people, (SELECT COUNT(iName) AS iCount FROM people) NewPeople 
    GROUP BY iName;
    

    Output:

    Name   Count   Percentage
    Sathish  5     50.00%
    Jana     3     30.00%
    Bala     2     20.00%
    
    0 讨论(0)
提交回复
热议问题