1
我想知道如何通過固定數量的記錄對窗口進行分區。按固定記錄數分區
示例(http://sqlfiddle.com/#!1/7df86)。
CREATE TABLE Games
(
id serial primary key,
game_no integer not null,
points integer,
constraint game_no unique (game_no)
);
INSERT INTO Games (game_no, points)
VALUES (3123, 5), (3126, 5), (3135, 8), (3128, null), (3130, 1), (3121, 11),
(3132, 0), (3133, 4), (3110, 7), (3112, null), (3113, 12), (3125, 3),(3134, 8);
我想結合三個遊戲的積分總數,從最高遊戲數開始,按遊戲數降序排列。喜歡這個。
| GAME_NO | POINTS | SUM_THREE |
|---------|--------|-----------|
| 3135 | 8 | 20 |
| 3134 | 8 | 20 |
| 3133 | 4 | 20 |
| 3132 | 0 | 1 |
| 3130 | 1 | 1 |
| 3128 | (null) | 1 |
| 3126 | 5 | 13 |
| 3125 | 3 | 13 |
| 3123 | 5 | 13 |
| 3121 | 11 | 23 |
| 3113 | 12 | 23 |
| 3112 | (null) | 23 |
| 3110 | 7 | 7 |
如何在不使用子查詢的情況下使用窗口函數完成此操作?我也不能使用例如with語句。它必須是一個單一的查詢,因爲外部解析器將執行它(我無法控制)。看起來很簡單,我在最近幾天突然想起了它:)
你認爲有可能實現相同的結果,而不使用 '與' 建設?我將編輯我的帖子,使其更加清晰,我需要一個「單一聲明」解決方案。 –
@JaneDoe,更新了答案。 – Noel
解析器確實接受內聯視圖。我從你的詢問中學到了很多:)謝謝。 –