分享到:
发表于 2009-01-04 11:39:26 楼主 | |
ID COlA COLB 1 a f 2 a g 3 b g 4 b h 5 c h 6 c i 假如我有一个表的内容如上,我现在想根据cola或者colb来分组,选出最大的id,返回的结果应该如下 ID COlA COLB MAX_ID 1 a f 6 2 a g 6 3 b g 6 4 b h 6 5 c h 6 6 c i 6 用select id,cola,colb,max(id) over(partition by cola,colb) from table的话,那么只有cola,colb都相同的情况下才能认为是同一组。我现在想只要cola或者colb相同就被认为是同一组。有没有什么好的办法? 就像这样的用法 select id,cola,colb,max(id) over(partition by cola or colb) from table 请向各位高手请教。 |
|
楼主热贴 |
发表于 2009-01-04 11:39:26 1楼 | |
我觉得“现在想只要cola或者colb相同就被认为是同一组”这个逻辑上有点问题。 会造成冲突的。例如7 c g 是在b g下方还是c h 上方? 我现在没有环境测试,不知道下面语句是否可行: select id,cola,colb,max(id) over(partition by cola order by max(id) over(colb) ) from table |
|
发表于 2009-01-04 11:39:26 2楼 | |
select id,cola,colb,max(id) over(partition by cola order by max(id) over(partition by colb) ) from table |
|
个性签名:
|
发表于 2009-01-04 11:39:26 3楼 | |
好像不行哦, 其实意思就是按a或者b来分组,并找出每组最大的id, 也就是如果a与b两个字段,只要任何一个字段 相同,就认为是同一组的。 如果第一行和第二行按a分属同一组,第2行与第3行按b分又属同一组,那么这三行都属于同一组。 |
|
发表于 2009-01-04 11:39:26 4楼 | |
嗯,所以偶还是觉得你的逻辑有问题。 ms 按你的想法,上面左右数据都在一个组的样子。^_^ |
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见