``最も高価な物品の数、業者、および価格は ?''
SQL-99 (および MySQL バージョン 4.1 以上)では、サブクエリを使用すると簡単にできます。
SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop);
MySQL バージョン 4.1 より前のバージョンでは、2 段階に分けて実行します。
SELECT
ステートメントを使用して、最高値をテーブルから取得する。
mysql> SELECT MAX(price) FROM shop;
+------------+
| MAX(price) |
+------------+
| 19.95 |
+------------+
上のクエリで表示された値 19.95 を最高値として使用するクエリを作成し、対応するレコードを検索および表示する。
mysql>SELECT article, dealer, price
->FROM shop
->WHERE price=19.95;
+---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0004 | D | 19.95 | +---------+--------+-------+
これ以外に、すべてのレコードを価格の降順でソートし、MySQL
固有の LIMIT
節を使用して先頭のレコードだけを取得する方法もあります。
SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1;
注意:価格が 19.95
の物品が複数ある場合、LIMIT
節を使用した方法では、その中の 1
つしか取得できません。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.