流水表中插入切片表数据
发布于 2022-03-03 17:12:17
现在有两个数据表,
A表是某个商品的属性表,schema如下:
---------------------------
sku_id | a1 | a1_datetime |
---------------------------
其中sku_id是商品id;a1是商品的某个属性,例如评论数量;a1_datetime是采集商品属性的时间,每隔固定时间采集一次,如2018-07-01,2018-07-06,2018-07-11等
B表是客户浏览商品的记录表,schema如下:
---------------------------------
user_id | sku_id | buy_datetime |
---------------------------------
其中sku_id是商品id;user_id是客户id;datetime是购买时间,是随机的时间,如2018-07-05,2018-07-08,2018-07-12等
现在希望将A表和B表拼接成为C表,schema为
-------------------------------------------------------------
user_id | sku_id | buy_datetime | a1 | a1_datetime |
-------------------------------------------------------------
要求C表中每个商品sku_id的属性值a1,必须是在购买时刻之前最近的一次采集时间点采集的。
注意:
1.sqlite中时间函数julianday('time'):将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。
输入描述:
A、B两个数据表输入样例:
A表:
+--------+----+-------------+
| sku_id | a1 | a1_datetime |
+--------+----+-------------+
| 1 | 3 | 2018-07-01 |
| 1 | 5 | 2018-07-06 |
| 1 | 7 | 2018-07-11 |
| 2 | 2 | 2018-07-01 |
| 2 | 4 | 2018-07-06 |
| 2 | 6 | 2018-07-11 |
+--------+----+-------------+
B表:
+---------+--------+--------------+
| user_id | sku_id | buy_datetime |
+---------+--------+--------------+
| 10001 | 1 | 2018-07-03 |
| 10002 | 1 | 2018-07-04 |
| 10003 | 1 | 2018-07-07 |
| 10004 | 1 | 2018-07-09 |
| 10005 | 2 | 2018-07-07 |
| 10006 | 2 | 2018-07-19 |
+---------+--------+--------------+
输出描述:
A、B两个数据表输出样例
结果( C表 ):
+---------+--------+--------------+------+-------------+
| user_id | sku_id | buy_datetime | a1 | a1_datetime |
+---------+--------+--------------+------+-------------+
| 10001 | 1 | 2018-07-03 | 3 | 2018-07-01 |
| 10002 | 1 | 2018-07-04 | 3 | 2018-07-01 |
| 10003 | 1 | 2018-07-07 | 5 | 2018-07-06 |
| 10004 | 1 | 2018-07-09 | 5 | 2018-07-06 |
| 10005 | 2 | 2018-07-07 | 4 | 2018-07-06 |
| 10006 | 2 | 2018-07-19 | 6 | 2018-07-11 |
+---------+--------+--------------+------+-------------+
A表是某个商品的属性表,schema如下:
---------------------------
sku_id | a1 | a1_datetime |
---------------------------
其中sku_id是商品id;a1是商品的某个属性,例如评论数量;a1_datetime是采集商品属性的时间,每隔固定时间采集一次,如2018-07-01,2018-07-06,2018-07-11等
B表是客户浏览商品的记录表,schema如下:
---------------------------------
user_id | sku_id | buy_datetime |
---------------------------------
其中sku_id是商品id;user_id是客户id;datetime是购买时间,是随机的时间,如2018-07-05,2018-07-08,2018-07-12等
现在希望将A表和B表拼接成为C表,schema为
-------------------------------------------------------------
user_id | sku_id | buy_datetime | a1 | a1_datetime |
-------------------------------------------------------------
要求C表中每个商品sku_id的属性值a1,必须是在购买时刻之前最近的一次采集时间点采集的。
注意:
1.sqlite中时间函数julianday('time'):将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。
2.sqlite中只支持left join,请将right join变成left join
3.sqlite中创建临时表语法是
CREATE TABLE new_table AS SELECT expressions FROM existing_tables [WHERE conditions]
关注者
0
被浏览
11