楼主: 李浩泉
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 几道变态的SQL面试题

🔗
ghost2019 2020-9-7 11:28:38 | 只看该作者
全局:
加密的密码是啥
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-9-7 11:33:02 | 只看该作者
全局:

1.3AC 字数
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-9-7 11:42:07 | 只看该作者
全局:
再来一道insane的SQL面试题,真正的高级DE面试题。很想很想用PYTHON去做,可惜这是SQL,呵呵。

For given table strs

str

----
aa
aaaa
aab
abaaba
bbbbb

the output should be

letter  total  occurrence  max_occurrence  max_occurrence_reached
  a       12           4                   4                          2
  b        8           3                   5                           1

解释:
a
total : 12 一共出现了12次
occurrence:4  一共出现在4个value中
max_occurrence:4  一个value中出现的最多次数
max_occurrence_reached:2  一共有几个value出现了最多次数


回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-9-7 12:38:30 | 只看该作者
全局:
这次我写PostgreSQL

  1. WITH RECURSIVE CTE (letter) AS (
  2.    SELECT CHR(97) AS letter
  3.    UNION ALL
  4.    SELECT CHR(ASCII(letter) + 1) FROM CTE WHERE ASCII(letter) < 122
  5. )

  6. SELECT
  7.     letter,
  8.     total,
  9.     occurrence,
  10.     max_occurrence,
  11.     COUNT(*) AS max_occurrence_reached
  12. FROM (
  13.        SELECT
  14.          letter,
  15.          SUM(oc) AS total,
  16.          COUNT(*) AS occurrence,
  17.          MAX(oc) AS max_occurrence  
  18.        FROM (
  19.               SELECT
  20.                  letter,
  21.                  str,
  22.                  CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str,letter, '')) oc     
  23.               FROM strs, CTE ) T1
  24.       WHERE T1.oc > 0 GROUP BY letter ) T2 INNER JOIN strs
  25. ON max_occurrence =  CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, letter, ''))
  26. GROUP BY
  27.     letter,
  28.     total,
  29.     occurrence,
  30.     max_occurrence
  31. ORDER BY 1 ASC
复制代码


回复

使用道具 举报

全局:
李浩泉 发表于 2020-09-06 19:49:29
从1到999,你都要手写吗?写1000个case when?2000怎么办?
那就需要你给到的解法
回复

使用道具 举报

🔗
chenwang9527 2020-9-7 14:16:53 | 只看该作者
全局:
李浩泉 发表于 2020-9-7 08:39
现在让你用SQL写,怎么办?这才是真正DE应该考得,SQL算法,而不是SQL + 算法。

SQL的源程序下面加密了 ...

老哥对DE面试为啥想法有点偏激。。。DE这个东西本来就是方方面面都涉及到的。。。SQL是很重要但并不是所有公司都是SQL heavy的。。。编程,数据模型,product sense,info structure 都是有用到的。。。真的是看公司平时用什么人家考什么的。。。。
亚麻喜欢考SQL是因为他们不同team真正通用的只有红屎。。。不同team会用到不同的工具做data pipeline的。。。
脸熟要考SQL+python也是因为他们data engineer team用到的是脸熟SDE用PYTHON专门给内部开发的类airflow平台。而脸熟的DE是比较少自己开发operator和自己的function的。
骨骼不大熟悉,但是据我所知 骨骼DE极少,大部分data pipeline都是由偏DATA INFO STRUCTURE 的SDE完成的。。剩下的由各种analyst或者BIE拿数据。
我虽然经验不是很多,但是面试过很多公司和很多业内的人也都讨论过,可能是我级别不够,但是面试角度来说考这么极端难度的SQL是其实非常不常见的。。。。
个人浅见 非喜勿喷。

评分

参与人数 2大米 +4 收起 理由
14417335 + 3
我不爱记单词 + 1 谢谢分享!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-9-7 23:01:52 | 只看该作者
全局:
chenwang9527 发表于 2020-9-7 14:16
老哥对DE面试为啥想法有点偏激。。。DE这个东西本来就是方方面面都涉及到的。。。SQL是很重要但并不是所 ...

这些题并不奇怪,你去ORACLE应SQL ENGINEER或者DE试试看。


兄弟啊,从另外一个角度看,你这个就是有点像外交部的官腔:

你谈SQL,他谈算法

你谈算法,他谈统计

你谈统计,他谈industry knowledge domain

你谈industry knowledge domian,他谈LP,总之可以用LP干掉你。

timing 到了,自然会有人找理由请你


timing 没到,那就继续山中修炼

华容道,关羽和曹操的关系,并不代表关羽就比曹操厉害,或者曹操就完全不行,关羽也早晚会走麦城,最后亡于无名小辈的面试官手里。

多放人,不据人,保持学习热情,争取能以E5或者E6的身份平安68岁退休,波澜不惊,把人生曲线做的平滑一些,这才是人生智慧。

而不是30岁前无业游民,40岁猛然冲到E7,然后50岁又失业,55岁开始转行做地产经纪。



回复

使用道具 举报

🔗
chenwang9527 2020-9-8 03:33:46 | 只看该作者
全局:
李浩泉 发表于 2020-9-7 23:01
这些题并不奇怪,你去ORACLE应SQL ENGINEER或者DE试试看。

哎,咋说呢。人各自有自己的看法和选择。我很理解找工作的艰辛和憋屈,觉得有时候被一个**给挂掉很不爽。但讲真的,人家进了大厂就是有自己的优点的。找工作面试虽然很多人说是双向选择,但是大多数人还不是要把自己变成对方的形状。
DE这个行业性质就比较融合,很多人都是当一个跳板而已的。一遍做DE一遍选择以后自己想做什么。我认识的大部分DE基本都会转行的,要不就是年纪大了没必要那么拼等退休了。
我回复你的意思只是提醒下说,其实DE面试真的不要这么死磕高难度SQL,说句不好听的,把LC的easy算法题随便拿出来一个要人用SQL做都会很复杂。。。这么死磕高难度SQL收益不高的。。。
还是我之前那句话,DE这个职位在不同的公司其实做的东西很不一样,根据对方的要求适当的准备面试也是一项必须的。。。这就是DE面试的难点。。。不像SDE刷题就好了。。。
回复

使用道具 举报

🔗
 楼主| 李浩泉 2021-3-11 06:20:01 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

🔗
 楼主| 李浩泉 2021-3-11 07:09:48 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表