2016-04-14 26 views
0

Ich haben eine Besucher-Tabelle mit diesen Feldern:COUNT und Prozent zwei Werte in MySQL

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

Versuchen am meisten besuchten Gerät zeigen morris.js mit Donut. Es erfordert einen Prozentwert, der als Prozentsatz angezeigt wird. Ich habe versucht, die Daten von MySQL als berechneten Wert zu holen.

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

Der Wert I zu bekommen versuchen ist:

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

So ist die Abfrage Gesamt alle Besucher zählen wird, bevor die in bestimmte Geräte zu gruppieren. Berechnen Sie dann den Prozentsatz pro Gerät.

Bitte helfen

Antwort

0
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 
0

try Verwendung dieses

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