

 Amazon Redshift tidak akan lagi mendukung pembuatan UDF Python baru mulai Patch 198. UDF Python yang ada akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi MEDIAN
<a name="r_MEDIAN"></a>

Menghitung nilai median untuk rentang nilai. `NULL`nilai dalam rentang diabaikan.

MEDIAN adalah fungsi distribusi terbalik yang mengasumsikan model distribusi kontinu.

Median adalah kasus khusus. [PERSENTILE\_CONT](r_PERCENTILE_CONT.md)

## Sintaksis
<a name="r_MEDIAN-synopsis"></a>

```
MEDIAN(median_expression)
```

## Argumen
<a name="r_MEDIAN-arguments"></a>

 *median\_expression*   
Kolom target atau ekspresi tempat fungsi beroperasi.

## Jenis Data
<a name="r_MEDIAN-data-types"></a>

Jenis pengembalian ditentukan oleh tipe data *median\_expression*. Tabel berikut menunjukkan tipe kembali untuk setiap tipe data *median\_expression*.


| Jenis masukan | Jenis pengembalian | 
| --- | --- | 
| INT2, INT4, INT8, NUMERIC, DECIMAL | DECIMAL | 
| FLOAT, DOUBLE | DOUBLE | 
| DATE | DATE | 
| TIMESTAMP | TIMESTAMP | 
| TIMESTAMPTZ | TIMESTAMPTZ | 

## Catatan penggunaan
<a name="r_MEDIAN-data-type-usage-notes"></a>

Jika argumen *median\_expression* adalah tipe `DECIMAL` data yang didefinisikan dengan presisi maksimum 38 digit, ada kemungkinan MEDIAN akan mengembalikan hasil yang tidak akurat atau kesalahan. Jika nilai pengembalian fungsi MEDIAN melebihi 38 digit, hasilnya terpotong agar sesuai, yang menyebabkan hilangnya presisi. Jika, selama interpolasi, hasil antara melebihi presisi maksimum, luapan numerik terjadi dan fungsi mengembalikan kesalahan. Untuk menghindari kondisi ini, sebaiknya gunakan tipe data dengan presisi lebih rendah atau mentransmisikan argumen *median\_expression* ke presisi yang lebih rendah. 

Jika pernyataan menyertakan beberapa panggilan ke fungsi agregat berbasis sortir (LISTAGG, PERCENTILE\_CONT, atau MEDIAN), semuanya harus menggunakan nilai ORDER BY yang sama. Perhatikan bahwa MEDIAN menerapkan urutan implisit oleh pada nilai ekspresi. 

Misalnya, pernyataan berikut mengembalikan kesalahan. 

```
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(pricepaid)
FROM sales 
GROUP BY salesid, pricepaid;

An error occurred when executing the SQL command:
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(pricepaid)
FROM sales 
GROUP BY salesid, pricepaid;

ERROR: within group ORDER BY clauses for aggregate functions must be the same
```

Pernyataan berikut berjalan dengan sukses. 

```
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(salesid)
FROM sales 
GROUP BY salesid, pricepaid;
```

## Contoh
<a name="r_MEDIAN-examples"></a>

Contoh berikut menggunakan database sampel TICKIT. Untuk informasi selengkapnya, lihat [Database sampel](c_sampledb.md).

Contoh berikut menunjukkan bahwa MEDIAN menghasilkan hasil yang sama seperti PERCENTILE\_CONT (0.5). 

```
SELECT TOP 10 DISTINCT sellerid, qtysold, 
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY qtysold),
MEDIAN(qtysold) 
FROM sales
GROUP BY sellerid, qtysold;

+----------+---------+-----------------+--------+
| sellerid | qtysold | percentile_cont | median |
+----------+---------+-----------------+--------+
|        2 |       2 |               2 |      2 |
|       26 |       1 |               1 |      1 |
|       33 |       1 |               1 |      1 |
|       38 |       1 |               1 |      1 |
|       43 |       1 |               1 |      1 |
|       48 |       2 |               2 |      2 |
|       48 |       3 |               3 |      3 |
|       77 |       4 |               4 |      4 |
|       85 |       4 |               4 |      4 |
|       95 |       2 |               2 |      2 |
+----------+---------+-----------------+--------+
```

Contoh berikut menemukan jumlah median yang dijual untuk setiap sellerid.

```
SELECT sellerid, 
MEDIAN(qtysold)
FROM sales
GROUP BY sellerid
ORDER BY sellerid
LIMIT 10;

+----------+--------+
| sellerid | median |
+----------+--------+
|        1 |    1.5 |
|        2 |      2 |
|        3 |      2 |
|        4 |      2 |
|        5 |      1 |
|        6 |      1 |
|        7 |    1.5 |
|        8 |      1 |
|        9 |      4 |
|       12 |      2 |
+----------+--------+
```

Untuk memverifikasi hasil kueri sebelumnya untuk sellerid pertama, gunakan contoh berikut.

```
SELECT qtysold 
FROM sales 
WHERE sellerid=1;

+---------+
| qtysold |
+---------+
|       2 |
|       1 |
+---------+
```