SQL怎么查询上次交易日期呢?

现有test表,表结构如下:

time goods num
2014/5/9 内存条 20
2014/4/28 硬盘 17
....../*海量数据*/
2013/7/2 内存条 18

怎么用表自连接的方法查询出上次交易的时间呢?
结果表是这样的:

time goods num LastTime

如果数据量太大,不能用表自连接方法,还有其它方法吗?

新人刚入行,虚心请教学习,感谢了~~~

2个回答

上次交易日期而不是最新日期
select a.test.time,a.goods,a.num,(select max(b.time) from test b where b.time <a.time and b.goods=a.goods group by b.goods) LastTime from test a

Haiktao
Haiktao 感谢帮助!发现group by应该可以省略吗?还是有其它用途呢? 请问还能用其它方法解决这个问题吗?对数据量大的表用这个方法会不会很慢呢?
4 年多之前 回复
 select test.time,test.goods,test.num from test,(select goods,max(time) LastTime from test group by goods) a
 where test.goods=a.goods
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐