【发布时间】:2015-01-07 13:01:23
【问题描述】:
我想获得 DB 中最大的邮政编码。通常我会这样做
SELECT *
FROM (
Select * From tbuser ORDER BY zip DESC
)
WHERE rownum = 1
使用此代码,我可以获得最大的邮政编码值,而不会出现重复行(因为邮政编码不是主键)。
但是日本的主要公司说我不能使用它,因为当连接速度很慢或数据库有非常大的数据时,你无法获得正确的行。如果有人可以提供帮助,对我来说将是一个很大的帮助。
【问题讨论】:
-
坦率地说,这听起来像是一个错误的限制。但是您使用的是哪个 Oracle 版本?
-
慢速连接对此没有影响。 Oracle 只会将单行传输回运行该语句的程序。您要么理解错误(关于慢速连接部分),要么说的人不知道 Oracle 如何处理查询。
-
啊,虽然是最新版本。我不知道为什么,但是日本的主要公司说这个问题并要求我们使用其他方法。很可能我们通过互联网与日本数据库连接。
-
如果表真的很大,为什么不
partition呢? -
“但是日本的主要公司说我不能使用它,因为当连接速度很慢或数据库有非常大的数据时,” 阅读您的各种 cmets -- 是不是真正的问题“如何在不可靠的连接上检索大行?”
标签: sql oracle greatest-n-per-group