2015-09-15 122 views
0

我正在使用數據表插件來顯示SQL查詢結果。我正在計算查詢中的百分比,但它給了我一個錯誤的值。有沒有辦法從數據表中獲得結果?在數據表中獲取百分比

enter image description here

在圖像,我33是總(23+4+2+4)。我需要在值23旁邊獲得百分比(23/33)*100。這可能嗎?

SELECT AIP.TERMID, 
     (select count(RAU.TERMNAME) 
      FROM REPORT_API_USAGE RAU 
      WHERE RAU.TERMID = AIP.TERMID AND 
       RAU.VOCID = 4) as page_views, 
     (select sum(count(RAU.TERMNAME)) 
      FROM REPORT_API_USAGE RAU 
      WHERE RAU.VOCID = 4 and 
       RAU.TERMID in (select AIP.TERMID 
           from REPORT_API_PAGES AIP 
           GROUP BY AIP.TERMID) 
      group by RAU.VOCID) as page_views_sum, 
     (select sum(count(AIP2.TERMID)) 
      from REPORT_API_PAGES AIP2 
      join REPORT_API_USAGE RAU 
      ON (RAU.TERMID = AIP2.TERMID AND 
       RAU.VOCID = 4) 
      where aip2.ctype = 'download' 
      GROUP by AIP2.termid) as download_sum, 
     (select sum(count(AIP2.TERMID)) 
      from REPORT_API_PAGES AIP2 
      join REPORT_API_USAGE RAU 
      ON (RAU.TERMID = AIP2.TERMID AND 
       RAU.VOCID = 4) 
      where aip2.ctype = 'event' 
      GROUP by AIP2.termid) as event_sum, 
     COUNT(case 
       when aip.ctype = 'download' then 1 
       else null 
      end) as page_download, 
     COUNT(case 
       when aip.ctype = 'event' then 1 
       else null 
      end) as page_event 
    from REPORT_API_PAGES AIP 
    GROUP BY AIP.TERMID 

download_sum & event_sum是錯誤的。

這個我如何顯示結果

<div class="percent-container"> <div class="percent-count"> <div class="percent-count-value"> <?php print $RowT->page_event; ?> </div> <div class="percent-value"><?php print round(($RowT->page_event/$RowT->event_sum) * 100); ?>% </div> </div>
<div class="percent-item"> <div class="percent" style="width: <?php print round(($RowT->page_event/$RowT->event_sum) * 100); ?>%"> </div> </div> </div>

+0

請分享您的SQL查詢,很難幫助沒有看到你的SQL –

+0

SELECT(A)/(SUM(*)* 100) WHERE a是23,sum(*)是所有項目的總和 –

+0

是否有任何方法2獲取COUNT(aip.ctype ='download'的情況下,然後1 else null結束的情況)的總和爲page_download,'& 查詢 – drup

回答

0
WITH data (value) AS (
    SELECT 23 FROM DUAL UNION ALL 
    SELECT 4 FROM DUAL UNION ALL 
    SELECT 2 FROM DUAL UNION ALL 
    SELECT 4 FROM DUAL 
) 
SELECT 
    VALUE, ROUND(RATIO_TO_REPORT(VALUE) OVER() * 100) PERCENTAGE 
FROM 
    data 
+2

時COUNT(如果aip.ctype ='event'則1 else else結束)作爲page_event'請編輯更多信息。只有代碼和「試試這個」的答案是[灰心](http://meta.stackexchange.com/questions/196187/is-try-this-bad-practice),因爲它們不包含可搜索的內容,也不解釋爲什麼有人應該「嘗試這個」。 –