BETWEEN 範囲条件 - Amazon Redshift

BETWEEN 範囲条件

BETWEEN 条件では、キーワード BETWEEN および AND を使用して、値が範囲内に入っているかどうか式をテストします。

構文

expression [ NOT ] BETWEEN expression AND expression

式は、数値データ型、文字データ型、または日時データ型とすることができますが、互換性を持つ必要があります。範囲は両端を含みます。

最初の例では、2、3、または 4 のいずれかのチケットの販売を登録したトランザクション数をカウントします。

select count(*) from sales where qtysold between 2 and 4; count -------- 104021 (1 row)

範囲条件は開始値と終了値を含みます。

select min(dateid), max(dateid) from sales where dateid between 1900 and 1910; min | max -----+----- 1900 | 1910

範囲条件内の最初の式は最小値、2 番目の式は最大値である必要があります。次の例は、式の値のせいで、常にゼロ行を返します。

select count(*) from sales where qtysold between 4 and 2; count ------- 0 (1 row)

しかし、NOT 修飾子を加えると、論理が反転し、すべての行がカウントされます。

select count(*) from sales where qtysold not between 4 and 2; count -------- 172456 (1 row)

次のクエリは、20000~50000 席を備えた会場のリストを返します。

select venueid, venuename, venueseats from venue where venueseats between 20000 and 50000 order by venueseats desc; venueid | venuename | venueseats ---------+-------------------------------+------------ 116 | Busch Stadium | 49660 106 | Rangers BallPark in Arlington | 49115 96 | Oriole Park at Camden Yards | 48876 ... (22 rows)

次の例は、日付値に BETWEEN を使用する方法を示しています。

select salesid, qtysold, pricepaid, commission, saletime from sales where eventid between 1000 and 2000 and saletime between '2008-01-01' and '2008-01-03' order by saletime asc; salesid | qtysold | pricepaid | commission | saletime --------+---------+-----------+------------+--------------- 65082 | 4 | 472 | 70.8 | 1/1/2008 06:06 110917 | 1 | 337 | 50.55 | 1/1/2008 07:05 112103 | 1 | 241 | 36.15 | 1/2/2008 03:15 137882 | 3 | 1473 | 220.95 | 1/2/2008 05:18 40331 | 2 | 58 | 8.7 | 1/2/2008 05:57 110918 | 3 | 1011 | 151.65 | 1/2/2008 07:17 96274 | 1 | 104 | 15.6 | 1/2/2008 07:18 150499 | 3 | 135 | 20.25 | 1/2/2008 07:20 68413 | 2 | 158 | 23.7 | 1/2/2008 08:12

BETWEEN の範囲は包括的ですが、日付はデフォルトで 00:00:00 の時刻値であることに注意してください。サンプルクエリで有効な 1 月 3 日の行は、販売時間が 1/3/2008 00:00:00 の行だけです。