2015-09-15 3 views
0

Я использую плагин datatable для отображения результатов SQL-запроса. Я вычисляю процент от моего запроса, но это дает мне неправильное значение. Есть ли способ получить результаты от datatable?Получить процент в datatables

enter image description here

В изображении, я 33 это общая (23+4+2+4). Мне нужно получить процент (23/33)*100 рядом со значением 23. Это возможно?

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 (а)/(SUM (*) * 100) WHERE a is 23, sum (*) - сумма всех позиций –

+0

Есть ли какой-либо способ 2 получить общую сумму 'COUNT (случай, когда aip.ctype = 'download', а затем еще 1 пустой конец) в качестве page_download,' & 'COUNT (случай, когда aip.ctype = 'event' then 1 else null end) as page_event' из запроса – 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

Пожалуйста, отредактируйте с дополнительной информацией. Только код и «попробуйте» ответы [обескуражены] (http://meta.stackexchange.com/questions/196187/is-try-this-bad-practice), поскольку они не содержат содержимого, доступного для поиска, и не объясните, почему кто-то должен «попробовать это». –

Смежные вопросы