代码之家  ›  专栏  ›  技术社区  ›  Samir Talwar PruthviRaj Reddy

是否可以在SQL Select查询中临时复制和修改行?

  •  3
  • Samir Talwar PruthviRaj Reddy  · 技术社区  · 15 年前

    我刚收到应用程序的新数据源,它将数据插入到 Derby 仅当数据库更改时。通常,丢失的数据是很好的——我用数据(随时间变化的值)绘制一个折线图,然后在两个点之间画一条线,外推任意给定点的预期值。问题是,在这种情况下,由于丢失的数据意味着“画一条直线”,如果我这样做,图表将是不正确的。

    有两种方法可以解决这个问题:我可以创建一个新类,以不同的方式处理丢失的数据(这可能很困难,因为预先使用的方式、我使用的绘图库、处理绘图),或者我可以复制行,留下 Y 在更改 X 每行中的值。我可以用Java来连接数据库和渲染器,或者我可以修改SQL。

    我的问题是,给出如下结果集:

    +-------+---------------------+
    | value | received            |
    +-------+---------------------+
    |     7 | 2000-01-01 08:00:00 |
    |    10 | 2000-01-01 08:00:05 |
    |    11 | 2000-01-01 08:00:07 |
    |     2 | 2000-01-01 08:00:13 |
    |     4 | 2000-01-01 08:00:16 |
    +-------+---------------------+
    

    假设我在8:00:20查询它,我如何使用SQL使它看起来像下面这样?基本上,我每秒钟复制一次行,直到它被占用。 received 无论出于何种目的,都是独一无二的 WHERE 查询中的子句)。

    +-------+---------------------+
    | value | received            |
    +-------+---------------------+
    |     7 | 2000-01-01 08:00:00 |
    |     7 | 2000-01-01 08:00:01 |
    |     7 | 2000-01-01 08:00:02 |
    |     7 | 2000-01-01 08:00:03 |
    |     7 | 2000-01-01 08:00:04 |
    |    10 | 2000-01-01 08:00:05 |
    |    10 | 2000-01-01 08:00:06 |
    |    11 | 2000-01-01 08:00:07 |
    |    11 | 2000-01-01 08:00:08 |
    |    11 | 2000-01-01 08:00:09 |
    |    11 | 2000-01-01 08:00:10 |
    |    11 | 2000-01-01 08:00:11 |
    |    11 | 2000-01-01 08:00:12 |
    |     2 | 2000-01-01 08:00:13 |
    |     2 | 2000-01-01 08:00:14 |
    |     2 | 2000-01-01 08:00:15 |
    |     4 | 2000-01-01 08:00:16 |
    |     4 | 2000-01-01 08:00:17 |
    |     4 | 2000-01-01 08:00:18 |
    |     4 | 2000-01-01 08:00:19 |
    |     4 | 2000-01-01 08:00:20 |
    +-------+---------------------+
    

    谢谢你的帮助。

    9 回复  |  直到 15 年前