现在有两个数据表, 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];-笔试面试资料

这是qklbishe.com第5309 篇笔试面试资料
提供答案分析,通过本文《现在有两个数据表,
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];-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
现在有两个数据表,
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];

现在有两个数据表,   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]; 零葬
先使用不等连接来得到购买时间之前的属性值,然后再通过group by来过滤出最后一个时间的属性值
select     user_id,     sku_id,     buy_datetime,     a1,     max(a1_datetime) as a1_datetime from     (select          B.user_id,          B.sku_id,          B.buy_datetime,          A.a1,          A.a1_datetime      from B      left join A on      A.sku_id=B.sku_id and B.buy_datetime>A.a1_datetime) C group by user_id, sku_id, buy_datetime order by user_id, sku_id, buy_datetime;

2020-12-29 17:18:38 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 现在有两个数据表, 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];-笔试面试资料

提供最优质的资源集合

立即查看 了解详情