BigQuery中的条件限制



我已经读到,在Postgres中设置LIMIT NULL实际上不会限制SELECT的结果。然而,在BigQuery中,当我根据条件设置LIMIT NULL时,我看到了Syntax error: Unexpected keyword NULL

我想找出一种方法来限制或不基于条件(可以是传递到过程中的参数,也可以是查询作业传递的参数,我可以为其编写CASEIF语句(。设置条件的机制应该无关紧要,我想要的是是否有一种方法可以在语法上指示LIMIT的值,这不会限制BigQuery。

LIMIT子句在BigQuery中的工作方式不同。它指定了结果中按下输入的最大数量。LIMITn必须是一个常量INT64。

使用LIMIT子句,您可以克服缓存结果大小的限制:

  • 使用过滤器来限制结果集
  • 使用LIMIT子句来减少结果集,尤其是在使用ORDER BY子句

您可以看到以下示例:

SELECT
title
FROM
`my-project.mydataset.mytable`
ORDER BY
title DESC
LIMIT
100

这将只返回100行。

如果要对大量值进行排序,最好使用它。您可以看到此文档中的示例。

如果要返回表中的所有行,则需要省略LIMIT子句。

SELECT
title
FROM
`my-project.mydataset.mytable`
ORDER BY
title DESC

此示例将返回表中的所有行。如果表太大,不建议省略LIMIT,因为它会消耗大量资源。

优化资源的一个解决方案是使用集群表。这将节省成本和查询时间。您可以看到此文档,其中详细解释了它的工作原理。

您可以编写一个存储过程,根据输入参数动态创建查询。sql查询准备好后,您可以使用execute immediate来运行它。通过这种方式,您可以控制应该向查询的limit子句提供什么值。https://cloud.google.com/bigquery/docs/reference/standard-sql/scripting#execute_immediate

希望这能回答您的疑问。

相关内容

  • 没有找到相关文章

最新更新