SQL小技巧
文章平均质量分 61
小_强
10年+数据架构师。专注于数据仓库、大数据、数据分析领域。
展开
-
SQL小技巧5:数据去重的N种方法,总有一种你想不到!
也就是说,在上面的SQL语句中,使用address字段进行去重,最终的结果,也最多只能返回address一个字段。ROW_NUMBER()窗口函数的原理是,先对数据按照partition by的字段进行分组,然后以order by的字段在各个分组内进行排序,序号从1开始递增。也就是说,在返回的结果中,同一行的id、name、age,可能并不是同一个学生的,这就导致看起来数据有些混乱。id=1的学生,应该叫周俊廷,而在上面的返回结果中却是杨萧语,返回的age字段,也有同样的问题。原创 2023-12-28 21:51:50 · 4107 阅读 · 0 评论 -
SQL小技巧4:什么是自关联?
然后,通过连接条件e1.manager_id = e2.employee_id来实现员工表与自身的关联。最终,得到了每个员工以及他们的上级的姓名。举个例子,假设有一个员工表,里面包含了员工的姓名、上级ID等信息。现在想查询每个员工的姓名以及他们的上级姓名。从这个例子可以看出,自关联常常用于类似组织架构这样有层级关系的查询中。在文章评论模型中,它也经常用于查询某个评论的所有回复评论的情况。然后,通过连接条件将表的列与自身的列匹配,建立关联。我跟他解释说,自关联就是在SQL语句中,一张表和它自己进行关联操作。原创 2023-12-18 22:30:30 · 1028 阅读 · 0 评论 -
SQL小技巧3:分层汇总
在上面的语法中,可以指定需要进行分组的列(可以是多列)以及要进行汇总计算的列(使用聚合函数,如SUM、COUNT等)。然后,将需要分层汇总的列放在GROUP BY的ROLLUP函数中,就可以启用RULLUP功能。关于SQL在线运行网站,省去了我们安装数据库,搭建环境的烦恼,而且还有多种数据库可以使用,真的是非常方便,简直是SQL新手必备。假如,需要计算每个地区每个月的销售总额,并且还要计算每个地区整体的销售总额。从上面的结果可以看到,ROLLUP函数不仅生成了地区的小计,最后还生成了总计。原创 2023-12-13 20:39:46 · 1056 阅读 · 0 评论 -
SQL小技巧:where条件后为什么要写1=1?
而有时,为了拼接条件更加方便,会在where条件后直接写上1=1,这其实是为了简化拼接条件的逻辑表达式。另一方面,如果在运行程序的过程中,a表的表结构并不是完全固定的,无法事先获知a表的create table语句,那也就无法创建出同样结构的b表。这时,b表完全拷贝a表的定义,而因为使用了“11”的条件,导致select子句查不到任何数据,从而实现了只拷贝结构而不拷贝数据的效果。类似的,如果要返回一个永远为false的结果,除了使用“11”外,还可以使用“22”与“'a''a'”。原创 2023-12-06 23:02:28 · 703 阅读 · 0 评论 -
SQL小技巧:随机查询n条数据
distribute by rand()` 可以保证随机数的分布均匀,而 `sort by rand()` 则在均匀地基础上做排序,再用 LIMIT 就可以获得随机的N条数据了。通过 ORDER BY RAND() ,可以随机排序所有结果,然后使用 LIMIT N 取出前 N 条。需要注意的是,这个方法并不能精准地选择 N 条数据,因为 TABLESAMPLE 的执行结果与表中实际数据量有关。最直接的方法是使用 SQL 的 RAND() 函数对数据进行随机排序,然后取前 N 条。原创 2023-12-06 22:57:23 · 627 阅读 · 0 评论