1. SELECT DISTINCT ON的用途 SELECT DISTINCT ON用于在一组重复的记录中选取每个分组的第一条记录。它允许你指定某些列用于区分唯一性,并且可以返回每个分组中的任意字段,而不像GROUP BY那样局限于只能查询和排序用于分组的字段。 2. SELECT DISTINCT ON的基本语法结构 ...
# select distinct on (a) a,b,c from t_distinct; a | b | c ---+---+--- 1 | 2 | 3 2 | 2 | 3 3 | 3 | 4 4 | 4 | 5 5 | 6 | 6 | 7 | (6 rows) 使用窗口函数可以达到类似效果,但是可以确定返回哪行,因此也更慢一些: 1 2 3 4 5 6 7 8 9 10 # select *...
如果有多个行具有相同的值,那么只有第一个出现的行会被保留。 DISTINCT不会改变查询结果的顺序,而DISTINCT ON会根据指定的列对结果集进行排序。 DISTINCT不能与其他聚合函数一起使用,而DISTINCT ON可以与GROUP BY子句一起使用。例如,我们可以使用以下语句查询每个班级的平均年龄: SELECT class_id, AVG(age)asaverage_...
在DISTINCT ON子句中,可以使用COUNT()函数来计数去重后的记录数。COUNT()函数是一种聚合函数,用于统计指定列或表达式的非空值数量。 下面是一个示例查询,展示了在DISTINCT ON子句中如何计数去重后的记录数: 代码语言:txt 复制 SELECT DISTINCT ON (column1, column2) column1, column2, COUNT(*) FROM table_n...
DISTINCT不会改变查询结果的顺序,而DISTINCT ON会根据指定的列对结果集进行排序。 DISTINCT不能与其他聚合函数一起使用,而DISTINCT ON可以与GROUP BY子句一起使用。例如,我们可以使用以下语句查询每个班级的平均年龄: SELECT class_id, AVG(age) as average_age ...
PostgreSQL has a really interesting and powerful construct called <code>SELECT DISTINCT ON</code>. No, this is not a typical <code>DISTINCT</code>. This is different. It is perfect when you have groups of data that are similar and want to pull a singl
1.第一种:where in SELECT * FROM test_table where(name,start_time) in (SELECT name,max(start_time) as start_time FROM test_table GROUP BY name) ; 2.第二种:distinct on SELECT DISTINCT on(name) id,name,score,start_time FROM test_table ORDER BY name,start_time desc ; 发布...
# SELECT DISTINCT ON (code) code, id, name from test_dist; code | id | name ---+---+--- 1 | 1 | a 2 | 4 | m 3 | 6 | j 4 | 8 | j (4 rows) 这里,根据code去重,id和name随机取出,这样可以获得code维度的数据。如果不去重,获得原始数据,code有重复。 本文参与 腾讯云自媒体同步...
DISTINCT关键字可以保证查询结果集中没有重复的值,这在一些场景下是非常有用的。本文将会详细介绍如何在PostgreSQL中使用DISTINCT关键字,并通过实例演示其用法。 DISTINCT关键字的基本语法 DISTINCT关键字通常与SELECT子句一起使用,如下所示: SELECT DISTINCT column1, column2, ... FROM table_name; 其中,column1, ...
SELECT class_id,AVG(age)asaverage_age FROM students GROUP BY class_id ORDER BY class_id,average_age DESC; 1. 2. 3. 4. 总结一下,DISTINCT和DISTINCT ON都是PostgreSQL中用于去除重复行的方法,但它们的用法和限制有所不同。在实际开发中,我们需要根据具体需求选择合适的方法来优化查询性能。希望本文能帮...