Postgresql

使用 plpgsql 計算為輸出選擇的記錄並輸出這些記錄

  • October 18, 2019

我的查詢從 table1 中選擇 1 行,其中包含多個欄位和一個非常長的文本欄位。它與第二個 table2 連接,該 table2 可能有許多匹配的相應行。我希望能夠將 table1 中的長文本欄位擴展到多行(由 table2 中的匹配行確定的數量)。

在此處輸入圖像描述

在上表中,Table1 中有一行,其中鍵是 table1_key = ‘DU’ 和 year = ‘2017’。然後有來自 Table2 的四行與包含 program_code 和 course_code 的匹配鍵。我想要分佈在多行中的欄位 long_text_field 來自 Table1。

是否可以為已選擇輸出的記錄提取總行數並仍輸出行?這意味著我想從上面看到 4 的計數,並能夠在顯示的輸出中使用這個數字。所以結果看起來像這樣:

在此處輸入圖像描述

我不明白你的例子,但如果這只是標題中問題的說明,答案是一個視窗函式:

SELECT /* all your columns and expressions */,
      count(*) OVER () AS total_count
FROM /* the rest of your query */

這將在每個結果行中附加一列,其中包含結果行的總數。

視窗函式在 之後GROUP BY,但在ORDER BY和之前呼叫LIMIT

引用自:https://dba.stackexchange.com/questions/251436