0
我正在查看row_number()的文檔,但我不明白這是什麼用法。我有2個查詢,我試圖將結果加入到一個表中。在這種情況下,使用windows函數row_number()會很有用。我需要了解使用這個函數的用法。該文檔指出「分區內當前行的數量,從1開始計數」,但沒有示例。在PostgreSQL中使用Windows函數row_number()OVER()
我正在查看row_number()的文檔,但我不明白這是什麼用法。我有2個查詢,我試圖將結果加入到一個表中。在這種情況下,使用windows函數row_number()會很有用。我需要了解使用這個函數的用法。該文檔指出「分區內當前行的數量,從1開始計數」,但沒有示例。在PostgreSQL中使用Windows函數row_number()OVER()
ROW_NUMBER() OVER ..
不會幫你JOIN
。要加入表格,可在FROM
子句和ON
參數中使用JOIN
來指定要連接的兩個表格之間共享的字段。
至於ROW_NUMBER()
,想象你有一個像
+-------+----------+
| color | animal |
+-------+----------+
| red | panda |
| red | squirrel |
| black | elephant |
| black | squirrel |
| black | panther |
| white | rabbit |
| white | cat |
| white | dog |
+-------+----------+
表如果你寫道:
SELECT
color, animal, ROW_NUMBER() OVER (PARTITION BY color ORDER BY animal) as rownumber
FROM myTable;
你會得到:
+-------+----------+-----------+
| color | animal | rownumber |
+-------+----------+-----------+
| red | panda | 1 |
| red | squirrel | 2 |
| black | elephant | 1 |
| black | squirrel | 3 |
| black | panther | 2 |
| white | rabbit | 3 |
| white | cat | 1 |
| white | dog | 2 |
+-------+----------+-----------+
是做什麼是 「分區」按顏色記錄。基本上通過顏色製作動物組。然後按動物名稱對每個組進行排序。然後,它在1
編號它們,它們的顏色分區的起始之內我不能想象會在join
幫助,但也許你有一個古怪的場景,其中兩個表中都沒有場至場的關係,所以你必須對記錄進行排名並加入該排名?我希望不要因爲這會困難,粗略和昂貴。
情景是在這裏:https://stackoverflow.com/questions/35782455/combining-2-select-queries – Patrick
ack。謝謝@patrick。這非常符合法案。 – JNevill
我之所以這麼說,是因爲我已經提供了一個解決方案,用於將一個查詢的結果與另一個查詢的結果結合起來。這些時間是從一個目的地到另一個目的地的時間。我基本上對這兩個查詢都使用同一張表。我在下面提供了一個小提琴: https://jsfiddle.net/ykhan8/pzj35eto/ 。我只是不明白爲什麼使用ROW_NUMBER()OVER()。 @JNevill。正如帕特里克提到我的方案的鏈接是解決方案提供給我的地方。會不會有一個簡單的方法來做到這一點 – bronxdeveloper