javascript 如何在Oracle Apex 22中对堆叠条形图进行排序?

lx0bsm1f  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(89)

我有一个堆叠的条形图,显示了主机分配的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'作为其值。两者都将主体作为标签,工具提示作为自定义工具提示。
提前感谢您帮助解决此问题!

6tqwzwtp

6tqwzwtp1#

我只需要停用“Multi-Series Chart Data”下的“Fill Gaps in Chart Data”,并添加“order by used_cpus;”对于我的查询。

相关问题