- 博客(9)
- 收藏
- 关注
原创 SQL-GROUP BY易错点
带有GROUP BY 子句的SELECT语句的查询列表中只能出现分组依据列或统计函数,因为分组后每个组只返回一行结果。GROUP BY 后面跟的列的个数和 SELECT 后面跟的列,除了聚集函数以为,其他的必须一样。GROUP BY子句中的分组依据列必须是表中存在的列名,不能使用AS子句指派的结果集列的别名。将分为以下四组来统计人数,a学校男生,a学校女生,b学校男生,b学校女生。先分组,后排序,group by 一定要在 order by 的前面。之前,理论上不应该识别。
2025-09-22 18:47:05
692
原创 SQL易错点-对null的处理
聚集函数关于NULL值的处理:除了count(*)之外的其他聚集函数(包括count(列), sum(), avg(), max(), min())都只操作。count(A)会忽略A的值为null的行,0也会计入count,null此时不会计入count!count(*)以外的count函数统计不含NULL值的行数,count(*)会将含null值的也算。
2025-09-21 21:44:20
414
原创 SQL窗口函数-ROW_NUMBER() ,RANK() ,DENSE_RANK()
相同的值会获得相同的排名,但下一个排名。,相同的值会获得相同的排名,但下一个排名会。的序号,对于排名1 2 3 4 5。分数:95 95 85 85 80。对于排名 1 1 3 3 5。
2025-09-21 18:06:54
288
原创 SQL-with临时表
按年龄给客户分群(age_group 分为 '20以下' ,'20-50' , '50以上','未填写' 四个群体),并计算各群体人数并命名为 user_count。牛客顾客购买信息表`customers_info`:customers_id,gebder,age。when age < 20 then '20以下'when age > 50 then '50以上')用于创建临时结果集,可在主查询中多次引用,使复杂查询更清晰、易维护。else '未填写'SQL24 分群并计算群体人数。
2025-09-20 22:40:42
634
原创 SQL-limit易错
1)LIMIT n:从第0+1(m=0)条开始,取n条数据,是LIMIT 0,n的缩写SELECT device_idFROM user_profileLIMIT 52)LIMIT m,n:从第m+1条开始,取n条数据SELECT device_idFROM user_profileLIMIT 0,53)LIMIT n OFFSET m:从第m+1条开始,取n条数据SELECT device_idFROM user_profileLIMIT 5 OFFSET 0
2025-09-18 22:32:57
116
原创 SQL-using用法
当两个表存在同名的列(且该列是连接依据)时,USING(列名) 等价于 ON 表1.列名 = 表2.列名。USING 中不能写 表名.列名,只能直接写列名(如 USING(users.user_id) 是错误的)orders 表:order_id, user_id, amount。users 表:user_id, name, age。如:表A JOIN 表B USING(共同列名)两个表中必须存在完全同名的列,否则会报错。是用于简化表连接条件的语法,主要作用是。中的列可直接引用(无需表别名)。
2025-09-15 14:34:57
286
原创 SQL结果合并-union、union all的区别
用union all合并结果集,合并后的结果集在一起不去重;用union 合并结果集,合并后的结果集在一起去重;
2025-09-13 21:31:30
110
原创 SQL易错点-where、having的使用
HAVING是要在分组之后进行条件筛选,所以having在group by 之后,所以HVAING语句前需要添加 group by。如果前面对字段起了别名,后面的having是可以直接使用别名来限制的 ,但是where不可以,只能采用数据库原有的数据字段,当聚合条件作为筛选结果时,不可以使用where函数,要使用having函数,这时候要达到同样效果的话,必须在前面加上相对应的字段。group中的顺序要与前面select中的顺序一致。
2025-09-12 17:57:01
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅