突破SQL基本面试问题(0)

写作原因:

在当今数据驱动的商业环境中,SQL作为数据分析师的核心工具,其重要性日益凸显。它不仅是查询和操作数据库的语言,更是连接数据与洞察力的桥梁。随着大数据技术的飞速发展,众多顶级企业,包括华为等大厂,已经将SQL基础能力的考察纳入到面试流程中,作为评估候选人是否具备高效数据处理能力的关键指标。

因此,对于有志于在数据分析领域深耕的专业人士来说,持续学习并精进SQL技能变得尤为关键。通过不断实践和应用SQL,不仅可以提升个人的数据处理效率,更能在实际工作中快速准确地挖掘数据价值,为企业决策提供有力支持。掌握SQL,意味着你拥有了解锁数据秘密的钥匙,能够在数据的海洋中游刃有余。今天介绍几个基本问题

having 和 where 的 区 别

  1. 应用阶段

    • WHERE 子句用于过滤原始记录,在聚合(如 GROUP BY)之前应用。
    • HAVING 子句用于过滤聚合后的记录,在聚合(如 GROUP BY)之后应用。
  2. 使用对象

    • WHERE 子句不能用于聚合函数(如 SUM()AVG()COUNT() 等),因为它在聚合前应用。
    • HAVING 子句可以用于聚合函数,因为它在聚合后应用。
  3. 语法位置

    • WHERE 子句在 FROM 子句和任何 JOIN 子句之后,GROUP BY 之前。
    • HAVING 子句在 GROUP BY 子句之后,ORDER BY 之前。

代码演示:

使用WHERE

SELECT product, amount
FROM sales
WHERE amount > 20;

这将返回 amount 大于 20 的所有记录。在这里,过滤是在聚合之前完成的。

使用 HAVING 子句:

SELECT product, SUM(amount) as total_amount
FROM sales 
GROUP BY product 
HAVING SUM(amount) > 50;

union和 join 的 区 别

JOIN

应用阶段:在查询过程中,将多个表的数据按行进行合并。数据通过指定的条件进行匹配和组合,形成一个新的结果集。
UNION

应用阶段:在查询的最后阶段,将多个查询结果按列进行合并。不同的结果集独立执行,然后将其合并成一个统一的结果集。

使用对象
JOIN

使用对象:用于在一个查询中从两个或多个表中选择相关的数据列。通常用于表之间存在逻辑关联的情况。例如,实际中,客户名单的表格和订单的表格,使用JOIN 帮助我们梳理客户的订单情况
连接条件:JOIN 需要基于特定的条件(通常是主键与外键的关系)来匹配表中的记录。
UNION

使用对象:用于将两个或多个查询的结果集进行合并,要求各个查询的列数和数据类型一致。适用于合并结构相似但来源不同的数据。例如,从两个不同的年份的销售表中合并所有销售记录。
合并条件: UNION 并不需要基于特定的条件进行匹配,只需要确保所有查询的结果集的列数和数据类型一致即可。

语法位置
JOIN :
语法位置: JOIN : 子句在 FROM 子句之后使用,连接的表之间通过 ON 或 USING 子句来指定匹配条件。

代码演示

SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b ON a.common_field = b.common_field;

UNION
语法位置:UNION 子句在各个 SELECT 语句之后使用,用于将两个或多个查询的结果集进行合并。

SELECT column1, column2
FROM table1
UNION
SELECT column1, column2
FROM table2;

总结

  • JOIN 用于将多个表按行合并,基于匹配条件。
  • UNION 用于将多个查询结果按列合并,默认去除重复行。
  • 选择 JOINUNION 取决于具体的数据合并需求。
  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值