【问题标题】:Calculate value per day计算每天的价值
【发布时间】:2015-08-31 04:38:12
【问题描述】:

我有 Oracle 表,我在其中插入有关网络上传和下载速度的数据。

CREATE TABLE AGENT_HISTORY(
  EVENT_DATE DATE,
  NETWORK_UP NUMBER,
  NETWORK_DOWN NUMBER
)

我想生成过去 30 天的条形图并显示每天(24 小时)的总上传流量。

select * from AGENT_HISTORY where EVENT_DATE >= SYSDATE - 30;

我不知道如何解决的问题是如何从NETWORK_UP 列中计算每天的流量。查询的结果应该是 30 天,每天的总上传流量。如果没有 PL/SQL 过程,这可能吗?

【问题讨论】:

  • 您能否提供一些示例数据以及您尝试获得的结果?

标签: sql oracle oracle11g


【解决方案1】:

您可以执行这样的查询来每天汇总 network_upnetwork_down 列的总计数据。

select  trunc(event_day,'day') event_date
       ,sum(network_up) tot_network_up
       ,sum(network_down) tot_network_down
from agent_history
where event_day >= trunc(sysdate,'day') - interval '30' day
group by trunc(event_day,'day');

您可以在不将查询嵌入 PL/SQL 存储代码的情况下执行此操作,具体取决于您用于前端的内容,在 java 中您可以使用类似这样的内容

Statement stmt = null;
String schema_name = 'abc';
String query = "select trunc(event_day,'day') event_date," +
               "sum(network_up) tot_network_up," +
               "sum(network_down) tot_network_down " +
               "from " + schema_name +".agent_history " +
               "where event_day >= trunc(sysdate,'day') " +
               "- interval '30' day " +
               "group by trunc(event_day,'day')"
try {
    stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        String event_data = rs.getString("EVENT_DATE");
        int tot_network_up = rs.getInt("TOT_NETWORK_UP");
        int tot_network_down= rs.getInt("TOT_NETWORK_DOWN");
      .....
}
catch (SQLException e) {
    .......
} finally {
    ......
}

使用这样的东西,您只需执行纯 SQL。

【讨论】:

    【解决方案2】:

    我的猜测是您只想聚合数据。类似的东西

    SELECT trunc(event_date), 
           sum(network_up) total_up,
           sum(network_down) total_down
      FROM agent_history
     WHERE event_date >= trunc(sysdate) - 30
     GROUP BY trunc(event_date)
    

    如果这不是您想要的,发布一些示例数据、预期输出等会非常有帮助。

    【讨论】:

    • 是的,我想汇总每天的数据并将其作为每天的结果返回。我运行代码,但在命令行出现错误:1 列:14 错误报告 - SQL 错误:ORA-00937:不是单组组函数 00937。00000 -“不是单组组函数” *原因:*行动:
    • @PeterPenzov - 对不起。我不知何故离开了GROUP BY
    猜你喜欢
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2021-07-10
    • 2019-06-25
    • 1970-01-01
    • 2021-07-07
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多