postgre distinct on的用法
"distinct on" 是 PostgreSQL 数据库的一个特殊语法,用于在查询结果中去重。
例如,我们有以下一张订单表:
order_id | customer_id | product_name
---------|-------------|-------------
1        | 1          | Apple
2        | 1          | Banana
3        | 2          | Apple
4        | 2          | Orange
5        | 3          | Banana
我们可以使用 "distinct on" 来获取每个客户的第一个订单:
```
SELECT DISTINCT ON (customer_id) order_id, customer_id, product_name
FROM orders
ORDER BY customer_id, order_id;
```select中distinct
这将返回以下结果:
order_id | customer_id | product_name
---------|-------------|-------------
1        | 1          | Apple
3        | 2          | Apple
5        | 3          | Banana
请注意,"distinct on" 语法必须与 "order by" 一起使用,以便指定排序顺序。在上面的例子中,我们首先按照客户 ID 进行排序,然后按照订单 ID 进行排序。
"distinct on" 可以帮助我们仅在特定列上去除重复项,并且同时保留该列中的值最早出现的记录。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。