はじめに
PostgreSQLテーブルから情報を取得するとき、結果を特定の順序で返すことができます。 PostgreSQLORDER BY
キーワードを使用すると、選択した列のデータベースからレコードを並べ替えることができます。 また、結果を昇順または降順に並べ替えるかどうかを指定することもできます。 この記事では、Postgres ORDER BY DESCキーワードを使用してレコードをソートし、降順で返す方法を説明します。
前提条件
このチュートリアルを進める前に、次の前提条件が整っていることを確認する必要があります:
- PostgreSQL ORDER BY DESCの例に従うには、PostgreSQLをコンピュータにインストールする必要があります。
- この記事を最大限に活用するには、PostgreSQLの基本的な知識が必要です。
postgres ORDER BY descending
まず、DESC
句を持つORDER BY
キーワードの基本的な構文を見てみましょう:
1
|
SELECT*FROM TABLE_NAME ORDER BY column_name DESC
|
注:代わりに結果を昇順で返したい場合は、DESC
キーワードをASC
に置き換えてください。
Postgres’ORDER BY’の例
例を進める前に、テーブルを作成して”richest_countries”という名前を付けましょう:
1
2 3 4 5 6 |
CREATE TABLE richest_countries(
IDシリアル主キー, 国VARCHAR(30), 大陸VARCHAR(30), gdp_per_capita数値 ); |
注:上記のCREATE TABLE
ステートメントを実行する前に、上記のサンプルテーブルのデータベースを作成してください。 データベースを作成したら、psqlで\c
コマンドを使用し、その後にデータベース名を付けて接続できます。
次に、いくつかのレコードをテーブルに挿入しましょう。 これは、私たちの例で使用するいくつかのサンプルデータを提供します:
1
2 3 4 5 6 7 8 9 10 |
INSERT INTO richest_countries(country,continent,gdp_per_capita)VALUES(‘Australia’,’Australia’, ‘58824’);
INSERT INTO richest_countries(country,continent,gdp_per_capita)値(‘シンガポール’,’アジア’, ‘62690’); INSERT INTO richest_countries(country,continent,gdp_per_capita)VALUES(‘Denmark’,’Europe’,’63434′); INSERT INTO richest_countries(country,continent,gdp_per_capita)値(‘アメリカ合衆国’,’北米’, ‘64906’); RICHEST_countries(country,continent,gdp_per_capita)値に挿入します(‘カタール’,’アジア’, ‘65062’); RICHEST_countries(country,continent,gdp_per_capita)値に挿入(‘Iceland’,’Europe’, ‘78181’); RICHEST_countries(country,continent,gdp_per_capita)値に挿入します(‘アイルランド’,’ヨーロッパ’, ‘81477’); RICHEST_countries(country,continent,gdp_per_capita)値に挿入(‘Swirzerland’,’Europe’,’83832′); richest_countries(country,continent,gdp_per_capita)値(‘Norway’,’Europe)に挿入します’, ‘86362’); RICHEST_countries(country,continent,gdp_per_capita)値に挿入(‘Luxembourg’,’Europe’, ‘119719’); |
Postgres sort byステートメントusing’ORDER BY’
次の例では、最も裕福な国を表示し、一人当たりのGDPでソートし、降順でレコードを返します:
1
2 3 |
国、大陸、キャストを選択(gdp_per_capita AS MONEY)
FROM richest_countries order BY gdp_per_capita DESC; |
上記のSQLステートメントでは、CAST
とAS MONEY
を組み合わせて使用していることに注意してください。gdp_per_capita
列の値はUSD通貨形式で返されます。 次に、クエリはPostgresレコードを一人当たりの最高GDPから最低GDPにソートします:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
国大陸|gdp_per_capita
————————–+—————+—————- ルクセンブルク|ヨーロッパ|$119,719.00 ノルウェー|ヨーロッパ|$86,362.00 Swirzerland|欧州|$83,832.00 アイルランド|欧州|$81,477.00 アイスランド|欧州|$78,181.00 カタール|アジア|$65,062.00 米国|北米|$64,906.00 デンマーク|欧州|$63,434.00 シンガポール/アジア/$62,690.00 オーストラリア/オーストラリア| $58,824.00 (10 行) |
limit
を使用してレコードを降順にソートする次の例では、最も裕福な国をソートしますが、今回は返されるレコードの数を制限します:
1
2 3 4 |
国、大陸、キャストを選択(gdp_per_capita AS MONEY)
FROM richest_countries order BY gdp_per_capita DESC LIMIT5; |
このステートメントは、次のものを返す必要があります:
1
2 3 4 5 6 7 8 |
国/大陸/gdp_per_capita
————-+———–+—————- 欧州|1 119,719.00 ノルウェー|Europe86,362.00 スイス|Europe83,832.00 アイルランド|Europe81,477.00 アイスランド|Europe78,181.00 アイルランド|.81,477.00 アイスランド|Europe88,181.00(5行)) |
複数の列を使用したPostgreSQLステートメントによるソート
ORDER BY
キーワードを使用すると、複数の列のレコードをソートできます。 この例では、最も豊かな国を大陸別に並べ替え、一人当たりGDPを降順に並べ替えます:
1
2 3 |
国、大陸、キャストを選択(gdp_per_capita AS MONEY)
from richest_countries order BY continent,gdp_per_capita DESC; |
上記のSQL文は、次の表を返します:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
国大陸|gdp_per_capita
————————–+—————+—————- カタール|アジア|$65,062.00 シンガポール|アジア|$62,690.00 オーストラリア|オーストラリア|$58,824.00 ルクセンブルク|ヨーロッパ|$119,719.00 ノルウェー|ヨーロッパ|$86,362.00 Swirzerland|欧州|$83,832.00 アイルランド|欧州|$81,477.00 アイスランド|欧州|$78,181.00 デンマーク|欧州|$63,434.00 アメリカ合衆国|北米| $64,906.00 (10 行) |
結論
PostgreSQLクエリを実行すると、返されたレコードをソートできるため、結果が読みやすくなり、データからより良い洞察を得ることができます。 ORDER BY
キーワードを使用すると、結果を並べ替える列を指定できます。DESC
句を追加すると、降順で簡単に並べ替えることができます。 この記事では、Postgres ORDER BY DESCキーワードを使用してクエリの結果をソートする方法を説明しました。 私たちの例では、あなたが始めるために、あなた自身のPostgreSQLクエリでこれらのキーワードを利用することができます。