演習課題「上位N件のレコードを取得しよう」
bookstoreデータベースのbookテーブルから、priceカラムに格納されている価格が高い順にレコードを30件取得してください。
期待する出力値
| book_id | title | year | price | category_id | publisher_id |
|---|---|---|---|---|---|
| 609 | Antique Yesterday | 2010 | 23.99 | 5 | 12 |
| 587 | Productive Travel | 1969 | 23.99 | 7 | 8 |
| 245 | Runny Market | 1995 | 23.99 | 18 | 8 |
| 564 | Taut Analysis | 1996 | 23.99 | 15 | 1 |
| 545 | Real Plane | 1994 | 23.99 | 6 | 6 |
| 955 | Violent Promise | 1987 | 23.99 | NULL | 4 |
| 832 | Full Hair | 1977 | 23.99 | 16 | 11 |
| 68 | Swift Homework | 1983 | 23.99 | 11 | 10 |
| 584 | Grand Blame | 1975 | 23.99 | 4 | 2 |
| 775 | Positive Minute | 1990 | 23.99 | 5 | 9 |
| 155 | Elaborate Jump | 2003 | 23.99 | NULL | 7 |
| 133 | Immaterial Battle | 1973 | 23.99 | 11 | 9 |
| 673 | Tremendous Pack | 1994 | 23.99 | 12 | 6 |
| 166 | Faithful Cause | 2001 | 23.99 | 11 | 6 |
| 43 | Those Tax | 1984 | 23.99 | 1 | 1 |
| 80 | Awesome Touch | 2005 | 23.99 | 15 | 12 |
| 735 | Modern Side | 2017 | 23.99 | 4 | 4 |
| 623 | Generous Significance | 2003 | 23.99 | 5 | 10 |
| 268 | Anguished Principle | 1990 | 23.99 | NULL | 5 |
| 341 | Bruised Staff | 1991 | 23.99 | 4 | 11 |
| 424 | Warped Branch | 2001 | 23.99 | 17 | 10 |
| 798 | Single Average | 1998 | 23.99 | 6 | 10 |
| 523 | Winding Curve | 1973 | 23.99 | 1 | 6 |
| 202 | Aged Kill | 2000 | 23.99 | 11 | 4 |
| 128 | Drab Effective | 2006 | 23.99 | 17 | 1 |
| 479 | Formal Leave | 2013 | 23.99 | 7 | 2 |
| 249 | Forceful Log | 1979 | 23.99 | 2 | 2 |
| 543 | Sleepy Measurement | 1991 | 23.99 | 2 | 4 |
| 711 | Detailed Failure | 1973 | 23.99 | 4 | 1 |
| 2 | Ultimate Line | 1993 | 23.99 | 9 | 8 |
※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#05:取得する行数を決める (LIMIT句)
このチャプターでは、LIMIT 句を使って、取得するレコードの数を指定する方法を学習します。
film(フィルム)テーブルから、時間(length)が長い映画を10本取得する場合
- SQL Server
TOP句で取得する行数を指定する
SELECT TOP 10 * FROM film ORDER BY length DESC;
- Oracle Database
FETCH FIRST節で取得する行数を指定する
SELECT * FROM film ORDER BY length DESC FETCH FIRST 10 ROWS ONLY;
ROWNUM疑似列で取得する行数を指定する
SELECT FROM (SELECT FROM film ORDER BY length DESC) WHERE ROWNUM <= 10;