日期:2014-05-17  浏览次数:20758 次

group可不可以实现这个种查询
select       TableA.goodsid,TableA.price,TableB.timewritten   from   TableB,TableA   TableB.seqid=TableA.seqid   group   by   TableA.goodsid,TableA.price,TableB.timewritten  

可不可以在产生的分组中进行排序和只显示每个小组的第一个记录呢,

谢谢,



------解决方案--------------------
如果 GOODSID, PRICE两列一样,楼主想取TIMEWRITTEN 是什么样的,随便一个就可以,还是最大,最小
------解决方案--------------------
select TableA.goodsid,TableA.price,max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid,TableA.price

是这样吗?
------解决方案--------------------
select TableA.goodsid,max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid
------解决方案--------------------
select TableA.goodsid,max(PRICE),max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid

------解决方案--------------------
select *
from
(
select t.*,row_number() over(partition by goodsid order by timewritten desc) rn
from
(
select TableA.goodsid,TableA.price,TableB.timewritten from TableB,TableA
where TableB.seqid=TableA.seqid
)t
)tt
where tt.rn=1