在mysql上,我会输入以下查询,但是在googlebigquery上运行同样的查询会导致上限错误。如何指定查询的限制?假设我有一个返回20个结果的查询,我只想要5到10个结果,我应该如何在googlebigquery上构建查询框架?)在
例如:
SELECT id,
COUNT(total) AS total
FROM ABC.data
GROUP BY id
ORDER BY count DESC
LIMIT 5,10;
如果我只在查询的末尾加上“LIMIT 5”,我会得到前5个,如果我把“LIMIT 10”放在前10个,那么在5到10之间使用什么语法呢。在
有人能解释一下吗?在
任何帮助都是非常感谢的。在
谢谢,祝你今天愉快。在
窗口函数的答案是很好的,但是我想我应该给出另一个选项,它涉及如何获取结果,而不是如何运行查询。在
如果只需要前N行,可以在查询中添加
LIMIT N
。但是如果不需要前M行,可以更改获取结果的方式。如果您使用的是javaapi,那么可以在TableData.list()或Jobs.getQueryResults()调用上使用setStartIndex()方法来只获取从特定索引开始的行。在我会使用窗口函数。。。 有点像
对于一个不断变化的数据集来说,这个问题毫无意义。如果你在请求前5个和下一个5之间有1秒的延迟。。。数据可能已经改变了。它的顺序现在不同了,您将丢失数据或得到重复的结果。所以像BigTable这样的数据库有一种方法,可以对数据进行一次查询,然后将结果集分组给您。如果是这样的话:您要查找的是查询游标。我不能说这比他们自己的例子更好,所以[这里是关于他们的文档。][1]
但既然您说过数据不会更改,那么fetch()就可以正常工作了。fetch()有两个选项,您需要注意限制和偏移量limit'是要返回的最大结果数。如果设置为“无”,则将检索所有可用结果offset'是要跳过的结果数。 请在此处查看其他选项:https://developers.google.com/appengine/docs/python/datastore/queryclass#Query_fetch
相关问题 更多 >
编程相关推荐