【问题标题】:COUNT and percentage two value in MySQLMySQL中的COUNT和百分比两个值
【发布时间】:2016-04-14 18:04:20
【问题描述】:

我有一个包含以下字段的访问者表:

id|---|browser|---|ip|---|device|---|city|---|state|---|country|---|status

正在尝试使用 morris.js Donut 显示访问次数最多的设备。它需要一个百分比值来显示为百分比。我试图从 MySQL 中获取数据作为计算值。

SELECT device,
(SELECT COUNT(id) FROM visitor WHERE status = '1') as total,
COUNT(id) as visit FROM visitor WHERE status = '1' GROUP BY device

我想要得到的价值是:

device|---|visit|---|percentage
iOS|---|2|---|40
Android|---|2|---|40
Windows|---|1|---|20

因此,在将访问者分组到特定设备之前,查询将计算所有访问者的总数。然后计算每台设备的百分比。

请帮忙

【问题讨论】:

    标签: mysql select math count average


    【解决方案1】:
    SELECT  v.device, COUNT(*) visit, COUNT(*) / total percentage
    FROM    (
            SELECT  COUNT(*) total
            FROM    visitor
            WHERE   status = 1
            ) t
    JOIN    visitor v
    ON      status = 1
    GROUP BY
            v.device
    

    【讨论】:

      【解决方案2】:

      试试这个

      select a.device, b.total, c.percent from visitor
          left join  (select device, count(id) as total from visitor where status='1') as b on b.device=a.device
          left join ( select device, b.total/count(id) as percent from visitor where status='1') on c.device=a.device
          group by device
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 2020-12-15
        • 1970-01-01
        相关资源
        最近更新 更多