我見過this question,這幾乎就是我想要的。但是我無法使用標準SQL在Bigquery上工作,因爲BQ不允許用戶定義變量。使用Bigquery(標準SQL)獲取每組分組結果的前n條記錄
注意 - 我有一個任意數量的組,所以UNION
所有他們根據鏈接問題的第一個答案是不可行的。
下面是一個最簡單的例子,但任何解決方案 應該能夠擴展到然而,許多■首頁結果需要:
給定一個表像之下,與個人,羣體和年齡列, 你將如何得到每個組中的2個最老的人? ( 集團內部的關係應該在任何 爲了不產生更多的成果,但給第2)
+--------+-------+-----+
| Person | Group | Age |
+--------+-------+-----+
| Bob | 1 | 32 |
| Jill | 1 | 34 |
| Shawn | 1 | 42 |
| Jake | 2 | 29 |
| Paul | 2 | 36 |
| Laura | 2 | 39 |
+--------+-------+-----+
所需的結果集:
+--------+-------+-----+
| Shawn | 1 | 42 |
| Jill | 1 | 34 |
| Laura | 2 | 39 |
| Paul | 2 | 36 |
+--------+-------+-----+
一個答案中的鏈接問題提到使用ROW_NUMBER
這確實存在,但我無法解決如何重新啓動每個組的號碼。