数据岗SQL刷题网站推荐

分享几个SQL刷题网站,数据人必备!

LeetCode数据库板块:经典50题,面试高频

牛客SQL题库:有在线编程环境,方便

HackerRank SQL:难度分级,适合循序渐进

SQLZOO:适合新手入门

LintCode:题目多,有中文

目前LeetCode刷了80道,感觉自己SQL已经人题合一了!结果面试官问我:"你有AB实验的经验吗?" 直接把我问懵了。AB实验怎么准备啊,求大佬指路! #面试___岗的必刷题单#
全部评论
A\B实验只能是通过公司实习获得吧,正常实习生一般都没有的。
1 回复 分享
发布于 03-11 18:07 江西
这些老哥你是不是都刷过了
点赞 回复 分享
发布于 03-29 17:48 陕西
sql一定是要掌握的 而且不能局限与简单的场景
点赞 回复 分享
发布于 03-11 21:45 四川

相关推荐

题目:求不同工资区间员工数占比思路:① 将连续工资离散化为区间使用 CASE WHEN 对 salary 进行分段,把每一个员工的工资映射到对应的区间标签(如 0-4999、5000-9999),解决“不同区间”的问题。② 按区间聚合统计人数以 salary_range 作为分组维度,用 COUNT(*) 统计每个区间内的员工数量,得到“区间内人数”。③ 在全量数据上计算总人数使用窗口函数 SUM(COUNT(*)) OVER (),在不改变行数的前提下,一次性算出公司总人数,避免额外的子查询或表连接。④ 计算并格式化占比用 区间人数 / 总人数 * 100.0 得出百分比,并通过 ROUND() 保留两位小数,最终产出“各区间人数及其占比”。易错点:① 区间边界重叠或遗漏​使用 CASE WHEN时,若写成 salary <= 5000和 salary >= 5000,会导致 5000 元同时落入两个区间;若漏写 ELSE,部分数据会被 静默忽略。✅ 建议采用 左闭右开(如 < 5000, >= 5000 AND < 10000)并显式处理 ELSE '其他'。② NULL 值导致统计失真​工资字段为 NULL的员工不会参与聚合,导致 分母(总人数)偏小。✅ 务必使用 WHERE salary IS NOT NULL或在 CASE中定义 '未录入'分支。③ 整数除法导致结果为 0​直接写 COUNT(*) * 100 / SUM(...)在严格模式会因整数相除,导致 所有占比都变成 0。✅ 转为浮点数:COUNT(*) * 100.0 / SUM(...)。④ 窗口函数分区范围错误​误写 SUM(...) OVER (PARTITION BY dept_id),会把 部门内占比​ 当成 全公司占比。✅ 全量占比必须使用 OVER ()(无分区)。⑤ 字符串排序导致区间乱序​按 salary_range字符串排序,会出现 10000+排在 0-4999前面的逻辑混乱。✅ 应按数值排序:ORDER BY MIN(salary)或增加辅助排序字段。
点赞 评论 收藏
分享
评论
3
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务