Рассчитать процент неограниченного количества предметов - PullRequest
0 голосов
/ 16 февраля 2011

Я хочу перечислить товары самых продаваемых товаров на основе таблицы истории продаж MySQL:

sales(id,item)
----------------
1,Chocolate
2,Chocolate
3,Flowers

Будет выводить:

Chocolate :: 2 Sales :: 67%
Flowers   :: 1 Sales :: 33%

Как это сделать с помощью php?

Спасибо

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011
select 
  name, 
  round(count(*)/total_row.total*100) 
from 
  sales,
  (select count(*) as total from your_tables) as total_row 
group by sales.name;
1 голос
/ 16 февраля 2011

Если у вас есть массив всех элементов, вы можете сделать что-то вроде

$ary = array('Chocolate','Chocolate','Flowers');
$total = count($ary);
$count = array_count_values($ary);
foreach($count as $item=>$val) {
    echo '<p>'.$item.' - '.$val.' Sales - '.($val/$total*100).'%</p>';
}

Получается array_count_values ​​ - небольшая удобная функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...