sql – HIVE中的LIMIT条款是否真的是随机的?
发布时间:2020-12-12 07:30:28 所属栏目:MsSql教程 来源:网络整理
导读:HIV的 documentation注意到LIMIT子句返回随机选择的行.我一直在一个表上运行SELECT表,其中包含超过800,000条LIMIT 1的记录,但它总是返回相同的记录. 我正在使用Shark发行版,我想知道这是否与这种不期望的行为有关?任何想法将不胜感激. 谢谢, Visakh 解决方法
HIV的
documentation注意到LIMIT子句返回随机选择的行.我一直在一个表上运行SELECT表,其中包含超过800,000条LIMIT 1的记录,但它总是返回相同的记录.
我正在使用Shark发行版,我想知道这是否与这种不期望的行为有关?任何想法将不胜感激. 谢谢, 解决方法即使文档声明它随机返回行,但事实并非如此.它返回“随机选择的行”,因为它出现在数据库中而没有任何where / order by子句.这意味着它并不像您想象的那样随机(或随机选择),只是无法确定返回行的顺序. 一旦你通过x DESC限制5拍打订单,它就会返回你选择的最后5行. 要获得随机返回的行,您需要使用以下内容:order by rand()LIMIT 1 但是,如果索引设置不正确,则会对速度产生影响.通常我做一个min / max来获取表中的ID,然后在它们之间做一个随机数,然后选择那些记录(在你的情况下,只是1条记录),这往往比数据库更快这项工作,特别是在大型数据集上 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |