gpt4 book ai didi

sql - 如何在oracle中ID的每个重复行仅获取一条记录?

转载 作者:行者123 更新时间:2023-12-04 09:15:09 25 4
gpt4 key购买 nike

假设我有这张 table :

group_id | image | image_id |
-----------------------------
23 blob 1
23 blob 2
23 blob 3
21 blob 4
21 blob 5
25 blob 6
25 blob 7

如何获得每个组ID中只有1个的结果?在这种情况下,一个组ID可能有多个图像,我只希望每个 group_id 一个结果

我尝试了不同,但我只会得到group_id。图片的最大值也将不起作用。

最佳答案

Oracle中没有,没有标准聚合函数可以与BLOB一起使用,因此GROUP BY解决方案将不起作用。

在子查询中根据ROW_NUMBER()尝试这一操作。

SELECT inn.group_id, inn.image, inn.image_id
FROM
(
SELECT t.group_id, t.image, t.image_id,
ROW_NUMBER() OVER (PARTITION BY t.group_id ORDER BY t.image_id) num
FROM theTable t
) inn
WHERE inn.num = 1;

上面应该为每个组返回第一行(基于 image_id)。

SQL Fiddle

关于sql - 如何在oracle中ID的每个重复行仅获取一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com