Leetcode SQL 刷题与答案-基础篇

数据科学家 算法工程师 面试准备 全套-github.com/LongxingTan/Machine-learning-interview

1050. 合作过至少三次的演员和导演

sql 复制代码
SELECT actor_id, director_id
FROM ActorDirector
GROUP BY actor_id, director_id
HAVING COUNT(*) >= 3;

1076. Project Employees II

sql 复制代码
SELECT TOP 1 WITH TIES project_id
FROM Project
GROUP BY project_id
ORDER BY COUNT(employee_id) DESC;

1082. Sales Analysis I

sql 复制代码
SELECT TOP 1 WITH TIES seller_id
FROM Sales
GROUP BY seller_id
ORDER BY SUM(price) DESC;

1141. 查询近30天活跃用户数

sql 复制代码
SELECT activity_date as day, COUNT(DISTINCT user_id) as active_users
FROM Activity
WHERE activity_date between '2019-06-28' and '2019-07-27'
GROUP BY activity_date;

1148. 文章浏览 I

sql 复制代码
SELECT DISTINCT author_id as id
FROM Views
WHERE author_id = viewer_id
ORDER BY id;

1149. Article Views II

sql 复制代码
SELECT DISTINCT viewer_id as id
FROM Views
GROUP BY viewer_id, view_date
HAVING COUNT(DISTINCT article_id) > 1
ORDER BY id;

182. 查找重复的电子邮箱

聚合函数(如 COUNT)通常需要与 GROUP BY 子句一起使用,并且过滤条件应该放在 HAVING 子句中。直接在 WHERE 子句中使用聚合函数会导致语法错误

sql 复制代码
SELECT email as email
FROM Person
GROUP BY email
HAVING COUNT(email) > 1;

511. 游戏玩法分析 I

处理聚合查询时,MIN 是一个更通用的解决方案,适用于所有 SQL 数据库。TOP 1 则更适合用于非聚合查询中选择排序后的第一行记录

sql 复制代码
SELECT player_id, MIN(event_date) as first_login
FROM Activity
GROUP BY player_id;

578. Get Highest Answer Rate Question

sql 复制代码
SELECT TOP 1 question_id as survey_log
FROM survey_log
GROUP BY question_id
ORDER BY COUNT(answer_id) * 1.0 / (COUNT(*) - COUNT(answer_id)) DESC;

584. 寻找用户推荐人

sql 复制代码
SELECT name
FROM Customer
WHERE referee_id != 2 OR referee_id IS NULL;

586. 订单最多的客户

sql 复制代码
SELECT customer_number
FROM orders
GROUP BY customer_number
ORDER BY COUNT(*) DESC
LIMIT 1;

595. 大的国家

sql 复制代码
SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;

596. 超过5名学生的课

sql 复制代码
SELECT class
FROM Courses
GROUP BY class
HAVING COUNT(*) >= 5;

619. 只出现一次的最大数字

多一层为了空表格时输出null

sql 复制代码
SELECT (
    SELECT num
    FROM MyNumbers
    GROUP BY num
    HAVING COUNT(*) = 1
    ORDER BY num DESC
    LIMIT 1
) as num;

620. 有趣的电影

sql 复制代码
SELECT *
FROM cinema
WHERE description != 'boring' AND id % 2 = 1
ORDER BY rating DESC;
相关推荐
WolfGang00732114 小时前
代码随想录算法训练营Day28 | 509.斐波那契数列、70.爬楼梯、746.使用最小花费爬楼梯
算法
Boop_wu14 小时前
[Java EE] 多线程进阶(JUC)(2)
java·jvm·算法
闻缺陷则喜何志丹15 小时前
【SOSDP模板 容斥原理 逆向思考】3757. 有效子序列的数量|分数未知
c++·算法·力扣·容斥原理·sosdp·逆向思考
CoovallyAIHub15 小时前
如何在手机上轻松识别多种鸟类?我们发现了更简单的秘密……
深度学习·算法·计算机视觉
q***333715 小时前
UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
数据库·sql·oracle
第二只羽毛15 小时前
遵守robots协议的友好爬虫
大数据·爬虫·python·算法·网络爬虫
艾斯比的日常16 小时前
Java 三色标记算法:并发垃圾回收的核心技术解析
java·开发语言·算法
CoovallyAIHub16 小时前
抛弃LLM!MIT用纯视觉方法破解ARC难题,性能接近人类水平
深度学习·算法·计算机视觉
程序猿编码16 小时前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince
高洁0116 小时前
具身智能-视觉语言导航(VLN)
深度学习·算法·aigc·transformer·知识图谱