【问题标题】:Oracle Apex 5: Using Multiple Columns in a Bar Charts AxixOracle Apex 5:在条形图轴中使用多列
【发布时间】:2017-06-06 16:35:25
【问题描述】:
我正在尝试创建一个条形图来显示表格中多个列的值。这是一个非常简单的条形图,我不知道如何在 APEX 5/SQL 中进行设计。
Chart describing what I mean
基本上,我希望条形图的 X 轴对我的表格的每一列(我选择)都有条形,并且条形将代表该列的总和,按名为 appname 的列分组。
我知道我需要一个:
选择总和(列)
从我的表
按应用名称分组
但我似乎无法让条形图代表我选择的每一列。
希望我已经很好地解释了这一点,不知道如何提供帮助的同事说我没有很好地解释事情。
【问题讨论】:
标签:
sql
oracle
oracle-apex
oracle-apex-5
【解决方案1】:
这可以做到,但据我所知,仅适用于固定数量的数据集。这就是我能够用一些虚拟数据做的事情:
您要做的是首先为其中一组创建一个图表,例如:
select code, sum(value) as total
from data
where app_id = 1
group by code
order by code
这会产生这个(使用我的示例数据):
现在,当您查看区域定义时,您会看到该区域包含一个“系列”:
(默认情况下它被命名为“系列 1” - 但我已经将我的重命名为“应用程序 1”)。
现在您可以右键单击系列 1 并选择“复制”,然后将创建一个新的重复系列。然后您可以编辑这个新系列的名称和 SQL 以引用应用程序 2。然后当您运行它时,您将看到我在开始时显示的结果。
【解决方案2】:
这是您需要做的。在图表源 SQL 中,定义类似这样的内容
SELECT SUM(column1) as col_sum,
Column1 as Series,
column1 as Column_name
FROM myTable GROUP BY appname
sort by appname
union all
SELECT SUM(column2) as col_sum,
Column2 as Series,
column3 as Column_name
FROM myTable GROUP BY appname
sort by appname
union all
SELECT SUM(column3) as Col1_sum,
Column3 as Series,
column3 as Column_name
FROM myTable GROUP BY appname
sort by appname
------ 依此类推 - 对于所有列-----
在 Series 属性中,将 Sources > Type 设置为 Region Source。
在 Column Mappin 中,选择 Series 作为 Series Name,Column_name 作为 Label,col_sum 作为 value。
在图表属性中,Appearance > Stack - 设置为No。
这应该可行。
或者,除了使用union all,您还可以为每个系列定义单独的 SQL 查询,并且每列有一个系列。在这种情况下,您的查询中不需要Series。