【数据分析/商业分析面试及笔试】常用SQL函数整理(自用)

我请问下,【数据分析/商业分析面试及笔试】常用SQL函数整理(自用)
最新回答
-她滥我情

2026-02-17 00:01:57

在数据分析或商业分析的面试及笔试中,SQL函数是经常考察的内容。以下是对常用SQL函数的整理,这些函数在数据处理和分析中非常实用。

JOIN 操作
  • INNER JOIN:当表中存在至少一个匹配时返回行。如果左表中的行在右表中没有匹配,则不会列出这些行。
  • LEFT JOIN:从左表返回所有的行,即使在右表中没有匹配的行。
  • RIGHT JOIN:从右表返回所有的行,即使在左表中没有匹配的行。
  • FULL JOIN:只要其中某个表存在匹配,就会返回行,相当于LEFT JOIN和RIGHT JOIN的并集。
UNION 操作
  • UNION:默认选取不同的值。
  • UNION ALL:允许选取相同的值。
LIMIT 子句
  • LIMIT y:读取y条数据。
  • LIMIT x, y:从表的第x+1条数据开始,读取共计y条数据。
  • LIMIT y OFFSET x:从表的第x+1条数据开始,读取共计y条数据。
数值处理函数
  • ROUND():遵循四舍五入把原值转化为指定小数位数。
  • FLOOR():向下舍入为指定小数位数。
  • CEILING():向上舍入为指定小数位数。
窗口函数
  • RANK():如果有并列名次的行,会占用下一名次的位置。
  • DENSE_RANK():如果有并列名次的行,不占用下一名次的位置。
  • ROW_NUMBER():不考虑并列名次的情况。
  • LEAD():可以在一次查询中取出同一字段的后N行的数据作为独立的列。
  • LAG():可以在一次查询中取出同一字段的前N行的数据作为独立的列。
时间函数
  • NOW(), CURDATE(), CURTIME():分别获取现在的时间(年月日时间/年月日/时间)。
  • DATE():获取表达式的日期部分。
  • DATE_ADD() & DATE_SUB():分别向日期添加或减去指定的时间间隔。
  • DATEDIFF():获取两个日期之间的时间间隔。
示例代码-- 使用INNER JOINSELECT * FROM table_name1 INNER JOIN table_name2 ON table_name1.key = table_name2.key;-- 使用LEFT JOINSELECT * FROM table_name1 LEFT JOIN table_name2 ON table_name1.key = table_name2.key;-- 使用UNIONSELECT column_name FROM table_name1 UNION SELECT column_name FROM table_name2;-- 使用LIMITSELECT * FROM table_name LIMIT 10;-- 使用ROUND, FLOOR, CEILINGSELECT ROUND(column_name, 2), FLOOR(column_name), CEILING(column_name) FROM table_name;-- 使用窗口函数SELECT emp_no, salary, DENSE_RANK() OVER(ORDER BY salary DESC) AS rank FROM salaries;-- 使用LEAD和LAGSELECT id, name, LEAD(name, 1, 0) OVER (ORDER BY id) FROM table_name;-- 使用时间函数SELECT NOW(), CURDATE(), CURTIME();SELECT DATE(OrderDate) FROM Orders;SELECT DATE_ADD(OrderDate, INTERVAL 2 DAY) FROM Orders;SELECT DATEDIFF(end_date, start_date) FROM table_name;

这些SQL函数在数据分析中非常有用,掌握它们可以帮助你更高效地处理和分析数据。在面试或笔试中,能够熟练运用这些函数也会给你加分。