我有一个堆叠的条形图,显示了主机分配的CPU(OnlineVirtualCPU)和实际物理CPU(pc)使用情况。目标是轻松区分CPU总量和实际CPU使用情况。但是,我只能按总值对图形进行排序,而不是物理CPU值。
使用Oracle Apex 22。图表中使用的数据包括分配的CPU和每个主机的实际物理CPU使用情况。
问题:使用两个图表/系列时,Order by似乎不起作用。“区域”属性“多系列图表数据”下的“排序顺序”仅允许按标签或值排序。(Value是总Value,在我的例子中是分配的cpu,但我想按物理cpu排序)
Sorted by Value
Series
查询两个系列系列系列:
SELECT
host AS Host,
TO_NUMBER(MAX(CASE WHEN obj = 'OnlineVirtualCPUs' THEN val END)) AS OnlineVirtualCPUs,
TO_NUMBER(MAX(CASE WHEN obj = 'pc' THEN val END)) AS PC,
MAX(CASE WHEN obj = 'OnlineVirtualCPUs' THEN val ELSE 0 END) - MAX(CASE WHEN obj = 'pc' THEN val ELSE 0 END) AS Unused_CPUs,
MAX(TS) AS Timestamp,
'Host: ' || host ||
'<br> OnlineVirtualCPUs: ' || TO_CHAR(MAX(CASE WHEN obj = 'OnlineVirtualCPUs' THEN val END)) ||
'<br> Physical CPUs: ' || TO_CHAR(MAX(CASE WHEN obj = 'pc' THEN val END), 'FM0.00') ||
'<br> Unused CPUs: ' || TO_CHAR(MAX(CASE WHEN obj = 'OnlineVirtualCPUs' THEN val ELSE 0 END) - MAX(CASE WHEN obj = 'pc' THEN val ELSE 0 END), 'FM0.00') ||
'<br> Time: ' || MAX(TS) AS Tooltip
FROM table
WHERE (service = 'service1' AND obj = 'OnlineVirtualCPUs') OR (service = 'service2' AND obj = 'pc') AND ts > SYSDATE - 1
GROUP BY host ORDER BY Unused_CPUs DESC;
PhysicalCPU系列使用'PC'作为其值,UnusedCpus系列使用'unused_cpus'作为其值。两者都将主体作为标签,工具提示作为自定义工具提示。
提前感谢您帮助解决此问题!
1条答案
按热度按时间6tqwzwtp1#
我只需要停用“Multi-Series Chart Data”下的“Fill Gaps in Chart Data”,并添加“order by used_cpus;”对于我的查询。