gpt4 book ai didi

sql - SAS - PROC SQL : two tables: each one column distinct value, 左连接

转载 作者:行者123 更新时间:2023-12-04 15:56:08 24 4
gpt4 key购买 nike

我有一个表,其中包含从 20000101 到 20001231 的不同日期 YYYYMMDD,以及一个包含从 09:30:00 到 16:00:00 的不同时间点 (HH:MM:SS) 的表。

我想创建一个(左)连接,其中每天都会重复分配给每个时间点 391 次。在我看来,这就像左连接,但是,我没有任何用于连接的 id。

date          time
20000101 09:30:00
20000101 09:31:00
20000101 ...
20000101 ...
20000101 15:59:00
20000101 16:00:00
20000102 09:30:00
20000102 ...
20000102 16:00:00

相应的代码会是什么样子(如果没有显式的公共(public)主键可供加入)?

PROC SQL;
SELECT DISTINCT a.date, b.time
FROM table_1 a, table_1 b (both information are in the same table)
;
QUIT;

正如背景:有些日子“较短”/少于 391 个观察点。但是,我想确保每天有 391 个观察点,只是用缺失值填充。

最佳答案

您需要笛卡尔积,因为您想要生成日期和时间的所有组合。因此,要产生这样的结果,您需要CROSS JOIN,其中您不必给出任何 JOIN 条件。

尝试以下查询:

PROC SQL;
SELECT a.date, b.time
FROM table_1 a
CROSS JOIN
table_1 b
GROUP BY a.date, b.time
;
QUIT;

PROC SQL;
SELECT a.date, b.time
FROM (SELECT date FROM table_1) a
CROSS JOIN
(SELECT time FROM table_1) b
GROUP BY a.date, b.time
;
QUIT;

有关CROSS JOIN的更多信息,请点击以下链接:

http://support.sas.com/documentation/cdl/en/fedsqlref/67364/HTML/default/viewer.htm#p1q7agzgxs9ik5n1p7k3sdft0u9u.htm

关于sql - SAS - PROC SQL : two tables: each one column distinct value, 左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49664227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com