Subkueri skalar - Amazon Redshift

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

Subkueri skalar

Subquery skalar adalah SELECT kueri reguler dalam tanda kurung yang mengembalikan tepat satu nilai: satu baris dengan satu kolom. Kueri dijalankan dan nilai yang dikembalikan digunakan dalam kueri luar. Jika subquery mengembalikan nol baris, nilai ekspresi subquery adalah null. Jika mengembalikan lebih dari satu baris, Amazon Redshift mengembalikan kesalahan. Subquery dapat merujuk ke variabel dari kueri induk, yang akan bertindak sebagai konstanta selama salah satu pemanggilan subquery.

Anda dapat menggunakan subkueri skalar di sebagian besar pernyataan yang membutuhkan ekspresi. Subquery skalar bukan ekspresi yang valid dalam kasus berikut:

  • Sebagai nilai default untuk ekspresi

  • Dalam GROUP BY dan HAVING klausa

Contoh

Subquery berikut menghitung harga rata-rata yang dibayarkan per penjualan sepanjang tahun 2008, kemudian kueri luar menggunakan nilai tersebut dalam output untuk membandingkan dengan harga rata-rata per penjualan per kuartal:

select qtr, avg(pricepaid) as avg_saleprice_per_qtr, (select avg(pricepaid) from sales join date on sales.dateid=date.dateid where year = 2008) as avg_saleprice_yearly from sales join date on sales.dateid=date.dateid where year = 2008 group by qtr order by qtr; qtr | avg_saleprice_per_qtr | avg_saleprice_yearly -------+-----------------------+---------------------- 1 | 647.64 | 642.28 2 | 646.86 | 642.28 3 | 636.79 | 642.28 4 | 638.26 | 642.28 (4 rows)