【发布时间】:2015-07-02 06:16:48
【问题描述】:
我有一个表,我使用唯一键创建了一个表,并且每列代表 2014 年 12 月的某一天(例如,命名为 D20141226 的数据来自 2014 年 12 月 26 日)。所以该表由 32 列(键 + 31 天)组成。这些每日列表示客户在该特定日期进行了交易,或者以 0 表示没有交易。
现在我想每天执行相同的查询,生成在特定日期有交易的唯一键列表。我使用了这个简单的脚本:
CREATE TABLE C01012015 AS
SELECT DISTINCT CALLING_ISDN AS A_PARTY
FROM CDRICC_012015
WHERE CALL_STA_TIME ::date = '2015-01-01'
现在我的问题是,如何将新的每日表格的内容添加到 31 天的现有表格中,使其有效地成为具有 32 天数据的表格(然后每天继续这样做以存储长达 360 天的数据)?
请注意,新客户每天都在进行交易,因此日表中将有唯一的键,这些键在前几天的大表中不存在。
如果这些新行会自动获得 0 而不是 NULL,那将是理想的,但如果它获得 NULL 值,我可以解决它(不确定如何确保它获得 0)。
我认为 FULL OUTER JOIN 将是解决方案,但这意味着我必须在 select 语句中列出所有变量,当我每天添加一列时,它变得非常大。有没有更优雅的方法来做到这一点?
或者是 SQL 不适合这一点,而像 R 这样的编程语言在这方面会更好?
【问题讨论】:
-
您使用的是哪个 dbms? (您可能需要特定于产品的功能。)
-
我正在使用 Netezza @jarlh
-
好的,我读了大约 4 次,但仍然不明白你在追求什么。你能举一些例子和一些数据吗?