2014-09-30 321 views
0

我有这样的查询:如何在MySql查询中添加一列'百分比权重'?

选择国家,收入 FROM MYTABLE

的结果是:

Usa, 1.000 

Canada, 8.000 

Japan, 2.000 

我想补充个 '重量',所以:

Usa, 1.000, 10% 

Canada, 8.000, 80% 

Japan, 1.000, 10% 

它可能在MySql也许与子查询?

谢谢

编辑:我很抱歉,百分比错了!现在我纠正了!

+0

相应更正我的回答,请看看。 – fancyPants 2014-09-30 11:00:15

+0

一些反馈会很好。 – fancyPants 2014-10-06 17:23:44

回答

0

这个怎么样?

CREATE TABLE Table1 
    (`country` varchar(6), `revenue` decimal(4,3)) 
; 

INSERT INTO Table1 
    (`country`, `revenue`) 
VALUES 
    ('Usa', 1.000), 
    ('Canada', 8.000), 
    ('Japan', 2.000) 
; 

select 
t1.country, t1.revenue, concat(format(if(total.total = 0, 0, (t1.revenue/total.total * 100)), 2), ' %') as percent 
from 
Table1 t1 
, (select sum(revenue) as total from Table1) total; 

| COUNTRY | REVENUE | PERCENT | 
|---------|---------|---------| 
|  Usa |  1 | 10.00 % | 
| Canada |  8 | 80.00 % | 
| Japan |  1 | 10.00 % | 
0

试试这个:

SELECT country, revenue 
,CONCAT(FORMAT(IF(revenue =0,0,(revenue*100.0)/revenue_total_value),2),'%') 
    AS `percentage` 
    FROM (SELECT SUM(revenue) AS total_value FROM mytable)