我可以使用聚合函式對數字和日期列使用 over 子句。但是,我無法對 varchar 列使用 over 子句。在下面的示例中,我可以使用以下幾行重現 FIRST_FILL_DT 列:
MIN(FILL_DATE) OVER(PARTITION BY ID) AS FIRST_FILL_DT
但是,在嘗試生成 FIRST_BP_MED 列時,我不確定是否可以使用類似的語法,因為我不知道聚合函式是否與 VARCHAR 列一起正常作業。
任何人都可以提供有關如何解決此問題的見解或指導嗎?
我的資料是這樣的:

我想要的資料應該是這樣的:

uj5u.com熱心網友回復:
如果您的資料庫支持 FIRST_VALUE 視窗函式,您可以使用以下內容:
FIRST_VALUE(BP_MED) OVER (PARTITION BY ID ORDER BY FILL_DATE) AS first_bp_med
FIRST_VALUE 的檔案:
MySQL、SQL Server、 Postgresql、 SQLite
uj5u.com熱心網友回復:
這是非常直接的。在 window 子句上使用 'FIRST_VALUE' 選擇磁區忽略的第一個值,而不管條件如何。
https://docs.microsoft.com/en-us/sql/t-sql/functions/first-value-transact-sql?view=sql-server-ver15
SELECT
ID, FILL_DATE, BP_MED,
MIN (FILL_DATE) OVER (PARTITION BY ID ORDER BY FILL_DATE) AS FIRST_FILL_DT,
FIRST_VALUE (BP_MED) OVER (PARTITION BY ID ORDER BY FILL_DATE) AS FIRST_BP_MED
FROM
YOURTABLE;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/389919.html
