我有一个 LibreOffice Calc 电子表格,其中包含两组时间序列数据,例如
|Date-A |A | | | |Date-B |B |
|2020-01-01|101| | | |2020-01-01|201|
|2020-01-02|102| | | |2020-01-02|202|
|2020-01-03|103| | | |2020-01-03|203|
|2020-01-04|104| | | |2020-01-04|204|
|2020-01-05|105| | | |2020-01-05|205|
|2020-01-06|106| | | |2020-01-08|206|
|2020-01-07|107| | | |2020-01-09|207|
|2020-01-08|108| | | |2020-01-10|208|
|2020-01-09|109| | | |2020-01-11|209|
请注意,缺少某些日期(例如,日期 B 缺少 2021-01-06 和 2021-01-07)
我想仅使用同时存在日期 A 和日期 B 的行来统一这些数据集。在这种情况下,结果将是
|Date |A |B |
|2020-01-01|101|201|
|2020-01-02|102|202|
|2020-01-03|103|203|
|2020-01-04|104|204|
|2020-01-05|105|205|
|2020-01-08|108|206|
|2020-01-09|109|207|
请注意,省略了 2020-01-06 和 2021-01-07,并且两个数据集中存在的所有日期都存在正确的 A 和 B 值。
我可以在 LibreOffice 中执行此操作吗?
答案1
- 创建一个新的 LibreOffice Base 数据库(嵌入式 hsqldb);
- 创建两个具有与数据列相同结构的表(A,B);
- 在电子表格中,选择并复制数据列
Date-A
和A
; - 将 Base 中的这两列粘贴到
Table A
(在表格视图中,选择表格A
并点击CTRL+ V) B data
对(日期和数据)列重复步骤 3 和 4 ;- 在 SQL 模式中创建一个新的查询:
SELECT "Date-A" AS "Date", "A", "B" FROM "A" JOIN "B" ON "A"."Date-A" = "B"."Date-B";
结果:
补充说明:不要尝试直接基于电子表格创建新数据库。这些数据库不支持 JOIN(据我所知),如果您尝试,您将收到奇怪的错误消息...(就像我第一次做的那样)