【记录做过的有意思的 SQL 题目】1581. 进店却未进行过交易的顾客
知识点:连接、子查询、GROUP BY、COUNT 函数
1. 首先使用 LEFT JOIN 将 Visits 和 Transaction 表连接起来,这样可以保留所有访问记录,而交易记录为空的会显示 NULL。
因为 Visits 和 Transactions 是用 visit_id 连接起来的,而且用了 left join 后,所有访问记录会被保留,对应的交易记录也会保留,访问且没有交易过的字段显示为 null。
2. 然后使用 WHERE 子句过滤出 transaction_id 为 NULL 的记录,即无交易记录的访客。
3. 因为题目要求返回只光顾不交易的次数,所以要根据当前的查询结果统计次数。group by 根据有重复的数据排序,customer_id 是有重复的。
注意:
- 子查询必须要有别名
知识点:连接、子查询、GROUP BY、COUNT 函数
1. 首先使用 LEFT JOIN 将 Visits 和 Transaction 表连接起来,这样可以保留所有访问记录,而交易记录为空的会显示 NULL。
因为 Visits 和 Transactions 是用 visit_id 连接起来的,而且用了 left join 后,所有访问记录会被保留,对应的交易记录也会保留,访问且没有交易过的字段显示为 null。
2. 然后使用 WHERE 子句过滤出 transaction_id 为 NULL 的记录,即无交易记录的访客。
3. 因为题目要求返回只光顾不交易的次数,所以要根据当前的查询结果统计次数。group by 根据有重复的数据排序,customer_id 是有重复的。
注意:
- 子查询必须要有别名
关注我,每天59秒拿下每日一题
国区每日一题今日思路:
LCA。前几天写过类似的。直接借助题目所给函数进行dfs,记返回值为是否找到p和q的公共祖先。有两种情况,没找到的话继续递归寻找,找到的话返回已经找到的公共祖先节点。递归终点是搜索到空节点(对应没找到返回NULL),找到p或者q(对应找到返回相应根节点)。一般节点同理,子树返回值中不存在NULL,说明当前节点为最小公共祖先;两个都为NULL说明没找到;有一个为NULL,说明已经找到了最小公共祖先,继续向上返回结果。
国际站每日一题今日思路:
并查集问题。将每个数看成一个节点,每个数向其所有质因子引一条边,同时合并集合。若每个数对可以完成转化,说明所有数处在同一并查集中。质因子的计算可以使用埃氏筛预处理,并查集创建时可以将数组元素映射到前n位,后续的mx(mx为数组中最大元素)位于n位之后。最后判断前n位是否位于同一集合。
#每日一题##LeetCode##每天59秒拿下每日一题#
国区每日一题今日思路:
LCA。前几天写过类似的。直接借助题目所给函数进行dfs,记返回值为是否找到p和q的公共祖先。有两种情况,没找到的话继续递归寻找,找到的话返回已经找到的公共祖先节点。递归终点是搜索到空节点(对应没找到返回NULL),找到p或者q(对应找到返回相应根节点)。一般节点同理,子树返回值中不存在NULL,说明当前节点为最小公共祖先;两个都为NULL说明没找到;有一个为NULL,说明已经找到了最小公共祖先,继续向上返回结果。
国际站每日一题今日思路:
并查集问题。将每个数看成一个节点,每个数向其所有质因子引一条边,同时合并集合。若每个数对可以完成转化,说明所有数处在同一并查集中。质因子的计算可以使用埃氏筛预处理,并查集创建时可以将数组元素映射到前n位,后续的mx(mx为数组中最大元素)位于n位之后。最后判断前n位是否位于同一集合。
#每日一题##LeetCode##每天59秒拿下每日一题#
Error-2147217887 Function UpdateRecord()试图将Null值赋予一个非Variant数据类型的变量问题的解决方法【Access软件网】
https://t.cn/A6YCHQqL
一、学员问题描述:
常规班:乐清--华数广电-207期 2024-02-20 21:52:04
ACCESS数据库迁移到sql后,运行模块时出现这样的提示,是不是sql数据库和access数据库不一样,该怎么改?,如下图:
错误提示代码定位到如下图:
二、解决方法:
经过检查,原因找到了,是因为“status”文本型字段在access数据库设为允许空字符串,迁移后,在sqlserver数据库中为“no null”,所以就出现上述提示了,将“允许空字符串”设为否,保存一下即可解决,如下图:
https://t.cn/A6YCHQqL
一、学员问题描述:
常规班:乐清--华数广电-207期 2024-02-20 21:52:04
ACCESS数据库迁移到sql后,运行模块时出现这样的提示,是不是sql数据库和access数据库不一样,该怎么改?,如下图:
错误提示代码定位到如下图:
二、解决方法:
经过检查,原因找到了,是因为“status”文本型字段在access数据库设为允许空字符串,迁移后,在sqlserver数据库中为“no null”,所以就出现上述提示了,将“允许空字符串”设为否,保存一下即可解决,如下图:
✋热门推荐