

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# LEAD 範圍函數
<a name="r_WF_LEAD"></a>

 LEAD 範圍函數傳回分割區中目前列下方 (之後) 給定位移那一列的值。

## 語法
<a name="r_WF_LEAD-synopsis"></a>

```
LEAD (value_expr [, offset ])
[ IGNORE NULLS | RESPECT NULLS ]
OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
```

## 引數
<a name="r_WF_LEAD-arguments"></a>

 *value\_expr*   
函數運算的目標欄或表達式。

 *offset*   
 選擇性參數，指定在目前列下方要傳回值的列數。位移可以是常數整數，或評估為整數的表達式。如果您不指定位移，Amazon Redshift 會使用 `1` 做為預設值。位移 `0` 表示目前列。

IGNORE NULLS   
選擇性規格，指出 Amazon Redshift 在決定要使用的列時應該略過 Null 值。如果未列出 IGNORE NULLS，則會包含 Null 值。  
您可以使用 NVL 或 COALESCE 表達式，將 Null 值換成另一個值。如需詳細資訊，請參閱[NVL 和 COALESCE 函數](r_NVL_function.md)。

RESPECT NULLS   
 指出 Amazon Redshift 應該包含 null 值來決定要使用的列。如果您不指定 IGNORE NULLS，則預設支援 RESPECT NULLS。

OVER   
指定視窗分割和排序。OVER 子句不能包含視窗框規格。

PARTITION BY *window\_partition*   
選擇性引數，針對 OVER 子句中的每一個群組，設定記錄範圍。

ORDER BY *window\_ordering*   
排序每一個分割區內的列。

LEAD 範圍函數支援有使用任何 Amazon Redshift 資料類型的運算式。傳回類型與 *value\_expr* 的類型相同。

## 範例
<a name="r_WF_LEAD-examples"></a>

 下列範例提供 SALES 資料表中於 2008 年 1 月 1 日和 2008 年 1 月 2 日售出門票之活動的佣金，以及對隨後銷售之門票銷售支付的佣金。下列範例使用 TICKIT 範例資料庫。如需詳細資訊，請參閱[範本資料庫](c_sampledb.md)。

```
SELECT eventid, commission, saletime, LEAD(commission, 1) over ( ORDER BY saletime ) AS next_comm
FROM sales
WHERE saletime BETWEEN '2008-01-09 00:00:00' AND '2008-01-10 12:59:59'
LIMIT 10;

+---------+------------+---------------------+-----------+
| eventid | commission |      saletime       | next_comm |
+---------+------------+---------------------+-----------+
|    1664 |       13.2 | 2008-01-09 01:00:21 |      69.6 |
|     184 |       69.6 | 2008-01-09 01:00:36 |     116.1 |
|    6870 |      116.1 | 2008-01-09 01:02:37 |      11.1 |
|    3718 |       11.1 | 2008-01-09 01:05:19 |     205.5 |
|    6772 |      205.5 | 2008-01-09 01:14:04 |      38.4 |
|    3074 |       38.4 | 2008-01-09 01:26:50 |     209.4 |
|    5254 |      209.4 | 2008-01-09 01:29:16 |      26.4 |
|    3724 |       26.4 | 2008-01-09 01:40:09 |      57.6 |
|    5303 |       57.6 | 2008-01-09 01:40:21 |      51.6 |
|    3678 |       51.6 | 2008-01-09 01:42:54 |      43.8 |
+---------+------------+---------------------+-----------+
```

 下列範例提供 SALES 資料表中事件的佣金上限，以及針對相同事件的後續銷售所支付之門票銷售的佣金。此範例示範如何使用 LEAD 搭配 GROUP BY 子句。由於彙總子句中不允許視窗函數，因此此範例會使用子查詢。下列範例使用 TICKIT 範例資料庫。如需詳細資訊，請參閱[範本資料庫](c_sampledb.md)。

```
SELECT eventid, eventname, max(next_comm_diff) as max_commission_difference
FROM
(
    SELECT sales.eventid, eventname, commission - LEAD(commission, 1) over (ORDER BY sales.eventid, saletime) AS next_comm_diff
    FROM sales JOIN event ON sales.eventid = event.eventid
)
GROUP BY eventid, eventname
ORDER BY eventid

LIMIT 10

| eventid | eventname                   | max_commission_difference |
+---------+-----------------------------+---------------------------+
| 1       | Gotterdammerung             | 7.95                      |
| 2       | Boris Godunov               | 227.85                    |
| 3       | Salome                      | 1350.9                    |
| 4       | La Cenerentola (Cinderella) | 790.05                    |
| 5       | Il Trovatore                | 214.05                    |
| 6       | L Elisir d Amore            | 510.9                     |
| 7       | Doctor Atomic               | 180.6                     |
| 9       | The Fly                     | 147                       |
| 10      | Rigoletto                   | 186.6                     |
+---------+-----------------------------+---------------------------+
```