2016-04-14 9 views
0

に私はこの分野での訪問者のテーブルを持っている:COUNTと割合2値は、MySQL

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

はドーナツmorris.jsを使用して最も訪問されたデバイスを表示しようとしていました。パーセンテージとして表示するにはパーセンテージ値が必要です。計算された値としてMySQLからデータを取得しようとしていました。

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

私が取得しようとしていた値は次のとおりです。

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

ので、クエリは、特定のデバイスにグループ化する前に、合計のすべての訪問者をカウントします。次に、デバイスごとのパーセンテージを計算します。

答えて

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

この

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 
を使用してみてください助けてください