我的SQL技术诀窍达到了极限,我希望能得到一些帮助。
我正在使用db2和Hibernate;我想根据两列中的唯一组合将行添加到域对象中。
我对DISTINCT和GROUP BY条款比较熟悉,但它们没有达到预期的效果。
非常无效的SQL:
SELECT DISTINCT *
FROM table1 a, (SELECT DISTINCT field1, field2 FROM table1) b
WHERE a.field1 = b.field1
AND a.field2 = b.field2
基本上我需要一个: SELECT DISTINCT field1,field2 FROM table1(但我需要返回整行,而不仅仅是字段子集。
答案 0 :(得分:1)
你需要找出要返回的行。以下使用row_number()
并将返回DB2中的任意匹配行:
select t.*
from (select t.* , row_number() over (partition by field1, field2 order by rand()) as seqnum
from table1 t
) t
where seqnum = 1;
我不确定这是如何转化为休眠的。