2016-04-14 66 views
0

yılında bu alanlarla bir ziyaretçi tablo vardır:SAYISI ve yüzde iki değer MySQL

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

Donut morris.js kullanarak en çok ziyaret edilen cihaz göstermeye çalışıyordu. Yüzde olarak gösterilecek bir yüzde değeri gerektirir. Verileri hesaplanan değer olarak MySQL'ten almaya çalışıyordum.

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

Elde çalışıyorum değerdir:

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

Yani sorgu belirli cihazlara gruplama önce toplam tüm ziyaretçinin sayacaktır. Daha sonra, cihaz başına yüzdesini hesaplayın.

cevap

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

deneyin kullanımını bu

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 
Lütfen yardım