BigQuery:API查询提供排序结果,而无需使用order by

时间:2019-01-26 10:22:05

标签: google-bigquery

这是我的查询(我使用标准SQL):

(
SELECT
  x,
  ARRAY_AGG(DISTINCT i IGNORE NULLS) AS sids
FROM (
  SELECT
    *
  FROM
    (SELECT
      x,
      y
    FROM
       table1)
  LEFT JOIN (
    SELECT
      *
    FROM
       table5_*)
  ON
    y = e)
GROUP BY
  y,
  x)


如果我通过API执行此操作,然后通过GCS存储桶将结果下载为json,则会得到一个文件,其中包含由聚合数组中的ID排序的行。像这样的东西:
{[x =>“ xxxx”,“ ids” => []}
{[x =>“ zzzz”,“ ids” => [0]}
{[x =>“ yyyy”,“ ids” => [0,7]}
{[x =>“ aaaa”,“ ids” => [0,7,8]}
{[x =>“ cccc”,“ ids” => [0,8]}
{[x =>“ ffff”,“ ids” => [1,5]}
{[x =>“ uuuu”,“ ids” => [1,5,6,8,9]}
等等...
通过UI执行查询时,没有得到期望的特定顺序。
为什么行在导出结果中以这种方式显示为有序?

1 个答案:

答案 0 :(得分:1)

该顺序是任意的,并且可以在没有ORDER BY的情况下随时更改。