假设我有这张桌子:
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个的结果?在这种情况下,一个group 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
每个组的第一行(基于)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句