![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL案例-Oracle
文章平均质量分 67
梁萌
认真是一种态度
展开
-
SQL案例学习:连续登录问题
案例需求描述案例使用的表及初始化数据的脚本附在当前文章最下面。实现方法一利用Oracle中的排序窗口函数(ROW_NUMBER),结合日期差值计算,最后求得用户连续登陆的天数,详细的推理步骤如下:①查询出一月份各用户的登录信息,将登陆日期格式化为年月日格式,并去重。select distinct t.user_id, trunc(t.login_time) ymdfrom t_login twhere t.login_time >= to_date原创 2022-05-08 17:58:25 · 1893 阅读 · 0 评论 -
SQL案例学习-微博好友关系
微博中的用户关系需要使用有向图(Directed Graph)表示。因为关注是单向关联,A关注了B,但是B不一定关注A。下图是一个简单的粉丝关系示意图:如果A关注了B,就会存在一条从A到B的带箭头的边。上图中的“刘一”关注了“周八”,同时“刘一”和“李四”相互关注。对于有向图而言,度又分为入度(In-degree)和出度(Out-degree)。入度表示有多少条边指向该顶点,出度表示有多少条边是以该顶点为起点的。“刘一”的入度为4(微博的粉丝数),出度为2(微博关注的人数)。对于社交原创 2022-04-18 10:30:12 · 748 阅读 · 0 评论 -
SQL案例学习-微信好友关系
在微信中,两个用户可以相互加为好友。用两个数据表来存储相关数据,t_user表和t_friend表。这里需要注意的是两个用户成为好友后,在t_friend表中会有两条记录,以user_id为1和2的两个用户为例,可以看到有两条记录。上图表示t_friend表中存储的用户好友关系,用直线连接的用户表示彼此间为好友关系。1.查看好友列表查询姓名为“刘一”用户的好友列表信息实现SQL:SELECT f.user_id A..原创 2022-04-17 20:15:03 · 2502 阅读 · 2 评论 -
SQL案例学习-字符串的合并与拆分
字符串的合并在Oracle中可能有多种实现方法,目前我已知的有两种,下面记录下这两种的实现:字符串合并方法一:实现SQL:--方法一SELECT d.dept_name,wm_concat(e.emp_name) FROM employee eINNER JOIN department d ON d.dept_id=e.dept_idGROUP BY d.dept_name;执行结果:SQL分析:利用Oracle自带的wm_c.原创 2022-04-17 12:51:35 · 10943 阅读 · 1 评论 -
SQL案例学习-月度销售冠军
公司销售人员负责各种产品的销售,emp_sales表中记录了每个销售人员每个月的销售数据,emp_sales表中的字段分别表示员工编号、销售年份、销售月份以及销售金额。查询每个月的销售冠军实现SQL:--月度销售冠军select * from ( select s.sale_year, s.sale_month, e.emp_name, s.amount, row_number() over(partition by s.sale原创 2022-04-16 19:39:39 · 1516 阅读 · 0 评论 -
SQL案例学习-保护个人信息
姓名、身份证号以及银行卡号等属于个人敏感信息。为了保护个人隐私,我们在前端界面显示时可能需要将这些信息中的部分内容进行隐藏,也就是显示为星号(*)。以医院排队叫号系统为例,屏幕上通常会隐藏患者的姓氏(对于两个字的姓名)或者名字中的倒数第2个字(对于三个或更多字的姓名),例如“*三”或者“李*亮”。姓名处理对姓名字段进行隐藏处理,显示规则:a.姓名为2个字符的,隐藏姓,只显示名。例如 "张三" 处理后为 "*三"b.姓名为3个字符的,隐藏中间一个字符。例如 "阿凡提" 处理后为原创 2022-04-15 14:53:17 · 4886 阅读 · 0 评论 -
SQL案例学习-员工考勤记录
实现SQL:select c.calendar_date, e.emp_name, to_char(a.clock_in,'yyyy-mm-dd hh24:mi:ss') clock_in, to_char(a.clock_out,'yyyy-mm-dd hh24:mi:ss') clock_out, case when a.clock_in is null or a.clock_out is null then '缺勤' w...原创 2022-04-13 18:38:12 · 3764 阅读 · 0 评论 -
SQL案例学习-数据透视表
销售表数据:通过SQL查询实现如下数据透视表:实现SQL:SELECT COALESCE(product,'合计值') AS 产品名称,COALESCE(channel,'合计值') AS 渠道,SUM(CASE WHEN EXTRACT(MONTH FROM saledate) = 1 THEN amount END) AS "1月",SUM(CASE WHEN EXTRACT(MONTH FROM saledate) = 2 THEN amount END) A原创 2022-04-13 16:40:33 · 4188 阅读 · 0 评论