2015-09-06 49 views
0

我终于得到这个代码 MySQL的内部工作作为一个单一的查询,而不是2 SELECT查询一起在PHP代码的一个$ SQL行:获得百分比SELECT查询在PHP SQL行工作

SELECT count(*) from mytable into @AgentCount; 

SELECT area 
    , COUNT(area) AS thecount 
    , ROUND ((COUNT(*)/(@AgentCount) * 100), 1) AS percentage 
FROM mytable 
GROUP BY area 
ORDER BY thecount DESC LIMIT 50; 

此外,仍然无法弄清楚如何在ROUND中使用%符号,以使百分比出现为53.3%(等等)。我比我开始时更近,但仍然没有雪茄。

我很可能在这里错过了一些简单的事情,但头脑冻结了。

感谢您的解冻帮助。

-stucko

回答

0

使用concat函数添加%符号并使用交叉连接。

SELECT area 
    , COUNT(area) AS thecount 
    , concat(ROUND((COUNT(*)/AgentCount * 100), 1), '%') AS percentage 
FROM mytable 
    cross join 
     (SELECT count(*) AgentCount from mytable) t 
GROUP BY area 
ORDER BY thecount DESC LIMIT 50; 
+0

这工作,splash58 - 谢谢!在Stack Overflow上,你们这些人真的很快而且很有帮助。非常感谢。现在要弄清楚如何反转PHP输出的顺序来显示%AREA -stucko – stucko

+0

只是想通了。 -stucko – stucko

+0

很高兴帮助。不客气 – splash58

0
SELECT area 
    , COUNT(area) AS thecount 
    , concat(ROUND ((COUNT(*)/(total_count) * 100), 1),"%") AS percentage 
FROM mytable,(SELECT count(*) as total_count from mytable)temp 
GROUP BY area 
ORDER BY thecount DESC LIMIT 50; 
+0

感谢您的贡献,海鹰! -stucko – stucko