【问题标题】: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2021-09-07
      • 2015-07-25
      • 2016-08-25
      • 1970-01-01
      相关资源
      最近更新 更多