面试题目(sql)

这年头说起学校,真是让人头疼。
我以前在做数据库管理员的时候也遇到过很多这样的问题。
老实说,不同的数据库有自己的处理活动日期数据的方式。
实际上不存在可以处理所有情况的统一 SQL 语句。

以你提到的SQL语句为例。
以前使用MySQL的时候,经常遇到这样的需求。
例如,我需要选择名称在表T中多次出现的记录,然后按名称排序。
这段代码看起来很简单,但实际上里面的细节还是不少的。

sql 选择 ID、姓名、地址、电话、参赛日期 从 T 身份证号在哪里( 选择ID 从 T 按名称分组 有 count() > 1 ) 按姓名订购;
我以前在MySQL中很容易使用过这个查询语句。
但如果你迁移到Oracle或SQL Server,你可能需要调整它。
例如,在 Oracle 中您可能必须使用 ROWNUM 来处理它,而在 SQL Server 中您可能必须使用 TOP 关键字。

再例如,删除ID不存在于给定子查询结果中的记录在MySQL和SQL Server中也是不同的。

sql 从 T 中删除 其中 ID 不在 ( 选择最小值(id) 从 T 按名称分组 );
这个操作可以直接在MySQL中编写,但是在SQL Server中你可能必须使用ROW_NUMBER()来创建评级,然后根据评级进行删除。

还有更新操作,比如将表T中的地址和电话号码更新为表E中对应的值。
在MySQL中可以这样写:
sql 更新T 设置 T.ADDRESS =(从 E 中选择 E.ADDRESS,其中 E.NAME = T.NAME), T.PHONE =(从 E 中选择 E.PHONE,其中 E.NAME = T.NAME);
但如果您在 SQL Server 中,则可能必须使用 JOIN 来处理它。

总之,数据库操作确实是一门学问,每个数据库都有自己的特点和局限性。
当时我不明白为什么会有这么多差异,但现在想来,可能是因为每个数据库都有不同的设计理念,因此数据处理策略也不同。
我自己没有运行过这个,我错过了 X 周围的数据,但我建议检查最新的文档。
我希望我的这些经历能够对你有用。

滴滴出行面试题--SQL

结论:直接给出答案。

1 .时间格式修正。

日期/时间拼写错误已更正为“日期/时间”。

timestampdiff 的拼写已更正为 timestampdiff 或 datediff(取决于数据库类型)。

巴西时间的转换代码是正确的。

2 修正响应率和订单完成率。

排除 1 9 7 0 年以来的无效订单。

逻辑更正:1 9 7 0年算为1 ,但实际上应该是1
分子和分母的逻辑是正确的。

3 修正呼叫应答时间。

正确使用timestampdiff或datediff。

列名称的拼写更正 (grab_time)。

4 高峰和最低通话量时间。

添加了列以正确存储时间。

代码逻辑正确。

5 第二天继续的看涨期权的比例。

列引用更正(day_calltime 应为 call_time)。

修复了子查询逻辑(计算第二天来自同一用户的调用)。

6 旅客分类的参考因素。

用户行为分类:出行距离、出行时间、放弃行为。

用户价值分类:RFM模型(R、F、M计算示例正确)。

摘要:
数据预处理:时间格式正确,处理无效订单。

指标计算:明确分子、分母的统计范围。

用户分类:行为维度和价值维度相结合,RFM模型。

SQL优化:关注拼写、逻辑和性能。