基于百分位数的颜色代码表单元格


Color code table cells based on percentiles

我正在使用以下MySQL查询将一天中不同时间内按DAYOFWEEK分组的订单的COUNT输出到用php:生成的html表中:

SELECT HOUR(`order_date`) as Hour,
Count(case when DAYOFWEEK(`order_date`) = 1 then `id` end) As Suday,
Count(case when DAYOFWEEK(`order_date`) = 2 then `id` end) As Monday,
Count(case when DAYOFWEEK(`order_date`) = 3 then `id` end) As Tuesday,
...
FROM `orders` WHERE 1
GROUP BY HOUR(`order_date`)

我得到了以下输出,这正是我应该得到的:

Hour    Suday   Monday  Tuesday Wednesday
10        8      23       43       5
11       13      41       61      12

我的问题是,我如何根据单元格在总数中的相对值对单元格进行颜色编码,例如,具有较高值的单元格会变为红色,而中等值的单元格则会变为橙色。

我想定义百分比范围,给每个单元格一个具有其百分比值的属性,然后使用if(value_range==something%),然后使用color。。。

有人有更好的想法来实现这一点吗?

谢谢!

您可以编写一个函数来检查数字的值,并根据其值应用不同的CSS类。

示例PHP函数:

function checknumber() {
  if ( range >= '[number]' && <= '[number]' ) {
    $colorcode = 'red';
  }
  return $colorcode;
}

使用功能:

<td class="<?php echo checknumber() ?>">[number]</td>

定义样式规则:

.red {
  color:#F00;
}

只要重复你需要的颜色和范围。