使用此查询,
SELECT company, YEAR( date ) as year, COUNT( * ) as total
FROM table
WHERE company = "Medtronic"
OR company = "Private"
GROUP BY YEAR( date )
Run Code Online (Sandbox Code Playgroud)
我得到这样一张桌子:
Company year total
Medtronic 1998 6
Private 1998 5
Medtronic 1999 5
Private 1999 1
Run Code Online (Sandbox Code Playgroud)
如何计算每家公司每年贡献的百分比?
例如,Medtronic在1998年贡献的百分比是6 /(6 + 5)= 54.5%
我一直试图通过MySQL查询来计算百分比.
多谢你们.
使用:
SELECT x.company,
x.year,
x.annual_total
x.annual_total / y.total AS percentage
FROM (SELECT t.company,
YEAR(t.date) as year,
COUNT( * ) as annual_total
FROM TABLE t
WHERE t.company IN ('Medtronic', 'Private')
GROUP BY YEAR( t.date ) ) x
JOIN (SELECT t.company,
COUNT(*) 'total'
FROM TABLE t
WHERE t.company IN ('Medtronic', 'Private')
GROUP BY t.company) y ON y.company = x.company
Run Code Online (Sandbox Code Playgroud)
如果您想要具有特定小数位的百分比,请使用:
CAST(x.annual_total / y.total AS DECIMAL(2,2)) AS percentage
Run Code Online (Sandbox Code Playgroud)
检查这是否给出了您期望的每家公司的计数:
SELECT t.company,
COUNT(*) 'total'
FROM TABLE t
WHERE t.company IN ('Medtronic', 'Private')
GROUP BY t.company
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5738 次 |
| 最近记录: |