摘要:
1、GROUP BY 子句在 SQL 中会处理 NULL 值,但它将 NULL 值视为相同的值进行分组。这意味着,如果你的查询中包含了可能为 NULL 的列,并且你按这个列进行了分组,那么所有 NULL 值都会被归到同一个组中。 2、avg函数 点击查看代码 /* AVG除了可以计算某字段的均值外, 阅读全文
摘要:
案例1: Course(CId,Cname,TId) Student(SId,Sname,Sage,Ssex) Teacher(TId,Tname) Student_score (SId 学生编号,CId 课程编号,score 分数) 查询平均成绩大于等于60分的同学的学生编号和学生姓名 点击查看代 阅读全文
摘要:
连续三行数据比较 点击查看代码 WITH NumberSequence AS ( SELECT id, num, LAG(num, 1) OVER (ORDER BY id) AS prev_num, LAG(num, 2) OVER (ORDER BY id) AS prev_prev_num F 阅读全文
摘要:
条件判断 点击查看代码 # 使用case when /* select x,y,z, case when x+y>z and x+z>y and y+z>x then 'Yes' else 'No' end as triangle from triangle */ # 使用if select x,y 阅读全文
摘要:
错误场景 1:在 WHERE 子句中直接使用聚合函数 问题原因 WHERE 子句在数据分组(GROUP BY)和聚合计算前执行,而聚合函数(如 COUNT、AVG)需在分组后生效。因此,不能在 WHERE 中直接使用聚合函数进行过滤 。 错误示例 sql Copy Code SELEC 阅读全文
摘要:
用于两张表之间存在关联关系,表A的外键是表B中的主键或唯一键的值。这样在更新表A的外键时,如果表B中没有对应的键值,就会报错 阅读全文
摘要:
1、查询结果为空时,怎么返回null,总结了一个表格如下: 可以使用聚合函数进行空值null值的转换,具体的聚合函数包括SUM/AVG/MAX/MIN 可以使用select语句进行转换,但空值应直接写在select中而非from中 limit语句无法出现新的null值 where和having同样无 阅读全文
摘要:
min和max函数 通常与 GROUP BY 子句一起使用,以便在分组的数据上计算每个组的最小值和最大值。但是,它们也可以在没有 GROUP BY 的情况下使用,此时它们会返回整个查询结果集中的最小值和最大值。 功能 MIN(column_name) 返回指定列中的最小值。 MAX(column_n 阅读全文
摘要:
一、明确时间范围判断的核心原则 包含边界时用 >=/<=,不包含时用 >/< 例:题目要求「截至 2019-07-27(包含该日期)」→ 结束日期使用 <= '2019-07-27'12 若未明确说明是否包含边界,默认使用等号(如 DATEDIFF(end_date, start_date) 阅读全文
摘要:
按日期统计数据 1、统计当月数据 使用date_forma函数把日期换成年-月,按年月进行分组,即实现按月统计 点击查看代码 SELECT DATE_FORMAT(trans_date, '%Y-%m') AS month, country, COUNT(*) AS trans_count, COU 阅读全文
摘要:
1、多个order by条件的写法 首先按contest_id升序排序,如果contest_id相同,则按percentage降序排序 点击查看代码 #错误写法:使用了两次order by语句,这在SQL中是不允许的 order by percentage desc order by contest 阅读全文
摘要:
SQL语句执行顺序 FROM:确定数据源,包括所有涉及的表。 JOIN和ON:处理表的连接及连接条件。 WHERE:筛选行。 GROUP BY:分组数据。 HAVING:筛选分组后的结果。 SELECT:选择需要的列。 DISTINCT:去除重复行。 ORDER BY:排序结果。 LIMIT/OFF 阅读全文
摘要:
案例: 答案一:使用单表查询,返回的name值是错误的。不是employee_id对应的name 点击查看代码 ``` select reports_to, count(employee_id) AS reports_count, Round(avg(age),0) AS average_age f 阅读全文
摘要:
1.外连接和内连接 内连接(inner join):假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。AB两张表没有主副之分,两张表是平等的。 外连接:假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带 阅读全文