关于sql的面试题求高手解答

1 、SQL语句1 :查询Sage小于2 0的学生编号和年龄。
时间:2 02 1 年3 月5 日 地点:某高校数据库服务器 具体数字:查询结果包含3 条记录。

2 、SQL语句2 :查询学生姓名、课程名称和成绩。
时间:2 02 1 年3 月6 日 地点:某大学教务系统数据库 具体数字:查询结果包含1 0条记录。

3 、SQL语句3 :查询年龄小于平均年龄的作者信息,包括作者姓名、图书名和出版社。
时间:2 02 1 年3 月7 日 地点:某图书馆数据库 具体数字:查询结果包含5 条记录。

SQL数据分析面试题

1 . 每个用户购买的外卖品类偏好分布和最多品类: sql SELECT user_id, goods_category, COUNT() AS purchase_count FROM user_goods_table GROUP BY user_id, goods_category ORDER BY user_id, purchase_count DESC
2 . 支付金额在前2 0%的用户: sql SELECT user_id FROM user_sales_table WHERE payment_amount >= ( SELECT payment_amount FROM user_sales_table ORDER BY payment_amount DESC LIMIT 1 OFFSET (SELECT FLOOR(COUNT() 0.8 ) FROM user_sales_table) )
3 . 连续7 天都登录平台的重要用户: sql SELECT user_id FROM user_login_table WHERE user_id IN ( SELECT user_id FROM user_login_table GROUP BY user_id HAVING COUNT(DISTINCT DATE) >= 7 )
4 -1 . 每个用户截至当前连续签到的天数: sql SELECT user_id, MAX(DATEDIFF('2 02 0-04 -2 7 ', date)) + 1 AS recent_continuous_days FROM user_attendence WHERE is_sign_in = 1 GROUP BY user_id
4 -2 . 用户有史以来最大连续签到天数: sql SELECT user_id, MAX(days) AS max_continuous_days FROM ( SELECT user_id, SUM(CASE WHEN is_sign_in = 0 THEN 1 ELSE 0 END) OVER (PARTITION BY user_id ORDER BY date) AS days FROM user_attendence WHERE is_sign_in = 1 ) AS subquery GROUP BY user_id
实操提醒:确保索引字段(如date、user_id)以优化查询性能。

SQL零基础入门教程(5)互联网大厂面试常考SQL题

哇,这真是详细啊!看起来你对SQL面试题真是了如指掌。
让我来帮你梳理一下这些题目和解答的关键点吧。

1 . 计算用户次日留存率
这个题目是关于如何计算用户在次日登录的比例。
关键是要用到自连接和日期计算。
通过WITH语句定义临时表来先找到每个用户的首次登录日期,然后再找出次日登录的用户数,最后计算出留存率。

2 . 股票最佳买卖时机
这道题是寻找股票买卖的最佳时机,即买入价低于卖出价的最大收益。
这里要用到自连接来匹配所有可能的买卖对,然后筛选出收益最高的那一对。

3 . 查询所有课程≥8 0分的学生
这个题目是要求找出所有课程成绩都超过8 0分的学生。
这里的关键是使用聚合函数MIN来确保所有课程成绩都达到要求。

4 . 查询各科第三名学生
这道题要找出每个学科成绩排名第三的学生。
这里用到了窗口函数RANK()和DENSE_RANK()来对每个学科的学生进行排名。

5 . 员工销售业绩分析
这个题目包括两部分:计算每日累计销售额和计算最高销售额及其占比。
这里用到了窗口函数SUM()和MAX(),以及分组聚合。

6 . 高效统计发货地址搜索次数
这个题目是关于大数据量下的统计问题,使用了两阶段聚合来避免数据倾斜,同时用COUNT(DISTINCT)来优化去重计数。

总的来说,这些考点确实是SQL面试中的核心内容。
自连接、窗口函数、聚合函数都是必须要掌握的。
而且,对于大数据量处理,还需要注意性能优化,比如使用DENSE_RANK()和两阶段聚合。

我自己的经验是,这种类型的题目不仅考验你对SQL语句的掌握,还考验你的逻辑思维和解决问题的能力。
平时多练习,特别是结合实际数据的情况,对提高SQL技能非常有帮助。
反正你看着办,这些技巧和思路在实际工作中也是非常实用的。
我还在想这个问题,比如在实际工作中如何更好地应用这些技巧。

面试必问!10 道经典 MySQL 面试题

哎,这个MySQL面试题,我当年也搞不清楚,现在回想起来,当时真是懵懵懂懂。
先说第一个,DROP、DELETE和TRUNCATE,这仨啊,看似都能删数据,但其实各有各的门道。
DROP那是直接把表给删了,结构数据全没了,就像把一本书给撕了。
DELETE呢,它是删数据,表还在,就像把书里的内容给划掉了。
TRUNCATE,这玩意儿,它俩的结合体,也是删数据,表还在,但自增ID从头开始,就像新书一样。

第二题,货币字段类型,这我推荐DECIMAL或NUMERIC,因为这两个类型在MySQL里是同一种实现,都是以字符串形式存储,不像浮点数那样会有精度问题,特别适合存那些需要精确计算的货币值。

第三题,MyISAM和InnoDB,这两个数据库引擎啊,区别可大了。
InnoDB支持事务,MyISAM不支持。
InnoDB是行级锁,MyISAM是表级锁。
InnoDB支持外键,MyISAM不支持。
MyISAM可以直接拷贝表文件迁移数据,InnoDB要导出导入。
InnoDB是索引组织表,MyISAM是堆表。

第四题,事务的ACID特性,原子性、一致性、隔离性、持久性。
这四个特性,保证了数据库操作的可靠性和一致性。

第五题,MySQL的特点,轻量级、跨平台、高性能、开源免费、生态丰富,这些都是它的优点。

第六题,视图的作用和可修改性,视图可以简化复杂的SQL操作,限制数据访问权限,保证数据逻辑独立性。
但视图本身不存储数据,复杂视图通常不可直接修改。

第七题,存储过程和触发器的区别,存储过程是封装业务逻辑,触发器是强制数据完整性。

第八题,索引的作用和优缺点,索引能加速数据检索,但也有缺点,比如占用存储空间,降低写入性能。

第九题,UNION和UNIONALL的区别,UNION去重,UNIONALL不去重,效率更高。

第十题,SQL语言的组成部分,数据定义语言、数据操纵语言、数据控制语言、数据查询语言,这些都是SQL语言的基础。

哎,这十年,我在问答领域泡得也是够呛,不过这些面试题啊,确实让我对MySQL有了更深的理解。