直接用distinct,后面的列都参与去重。只有code, name拼接的组合相同时,去掉重复的 代码语言:javascript 代码运行次数:0 运行 AI代码解释 # SELECT DISTINCT code,name from test_dist; code | name ---+--- 1 | b 2 | n 4 | j 1 | c 1 | a 2 | m 3 | j (7 rows) 去重指定列,保留其他列 ...
DISTINCT要写在括号中,目的是在计算行数前先去重。 SELECTCOUNT(DISTINCT product_type)FROM Product; 所有的聚合函数的参数中都可以使用DISTINCT。 下面这个SUM(DISTINCT sale_price),先把sale_price里面的数据去重,然后再求和。 SELECTSUM(sale_price),SUM(DISTINCT sale_price)FROM Product; GROUP BY 对表分组:前面...
所以,addOrderBy对产品没有影响。有没有办法在distinctOn之后对产品进行排序? SELECT id, product_id, price FROM (SELECT id, product_id, price, Dense_rank() OVER ( partition BY product_id ORDER BY price ASC) dr FROM product) inline_view WHERE dr = 1 ORDER BY price ASC; Setup: postgres=#...
DISTINCT会去除所有重复的行,而DISTINCT ON只会去除部分重复的行。具体来说,它会保留每个分组中的第一个出现的行(根据ORDER BY子句排序)。如果有多个行具有相同的值,那么只有第一个出现的行会被保留。 DISTINCT不会改变查询结果的顺序,而DISTINCT ON会根据指定的列对结果集进行排序。 DISTINCT不能与其他聚合函数一起...
ORDER BY class_id, average_age DESC; 总结一下,DISTINCT和DISTINCT ON都是PostgreSQL中用于去除重复行的方法,但它们的用法和限制有所不同。在实际开发中,我们需要根据具体需求选择合适的方法来优化查询性能。希望本文能帮助你更好地理解和使用这两种方法。
另一种查找重复记录的方法就是直接使用自连接查询和 distinct 操作符,例如: SELECT DISTINCT p.* FROM people p JOIN people d ON p.email = d.email WHERE p.id <> d.id ORDER BY p.email; id|name|email | --+---+---+ 2|李四 |lisi@test.com | 4|李斯 |lisi@test.com | 3|王五 |...
ORDER BY dept_id, salary DESC;其中,DISTINCT ON (dept_id) 表示部门 id 相同的数据组,返回其中的第一条记录;ORDER BY 子句确保了返回的是每个部分中月薪最高的记录。DISTINCT ON 中的字段或表达式(可能多个)必须和 ORDER BY 最左侧的几个字段或表达式相同。IS DISTINCT FROM 空值(NULL)是数据库中的一...
postgresql 字符串去重后拼接 plsql去重查询,工作中经常会使用sql分组,总结三个方法:1、distinct在SQL中,关键字distinct用于返回唯一不同的值。其语法格式为:SELECTDISTINCT列名称FROM表名称假设有一个表“CESHIDEMO”,包含两个字段,分别NAME和AGE,具体格式如下:观
二、ORDER BY子句是唯一能重用列别名的一步 这里涉及SQL语句的语法顺序和执行顺序了,我们常见的SQL语法顺序如下: SELECT DISTINCT <Top Num> FROM [left_table] <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group...
select array_agg(distinct ref_no) from cnt_item where updated_on between '2021-05-05' and '2021-05-30 16:13:25'; --合并结果:{ITM2105-000001,ITM2105-000002,ITM2105-000003} select (array_agg(distinct ref_no order by ref_no desc))[1] from cnt_item where updated_on between '2021-...