SELECT MIN(retail)
FROM books
WHERE category = 'COMPUTER'
正常に動作しますが、選択にタイトルを含めると、次のようになります。
SELECT MIN(retail), title
FROM books
WHERE category = 'COMPUTER'
そうではありません。なんで?それを機能させる方法は?
それがあなたの言いたいことであれば、Rhysの答えは正しいですが、title
(s) whereが必要だったかもしれません。retail=MIN(retail)
その言葉遣いは、その答えを得る方法を示唆しています:
SELECT title, retail
FROM books
WHERE category = 'COMPUTER'
AND retail = (SELECT MIN(retail) FROM books WHERE category = 'COMPUTER')
重複を減らすには、WITH
句を使用できます (最近のバージョンの SQL を使用している場合)。
;WITH ComputerBooks AS (
SELECT title, retail
FROM books
WHERE category = 'COMPUTER')
SELECT title, retail
FROM ComputerBooks
WHERE retail = (SELECT MIN(retail) FROM ComputerBooks)
MIN はレコードのグループに適用されるため、意味するレコードのグループを指定する必要があります。
各タイトルについて、最小の小売りを表示する場合は、次のものが必要です。
SELECT MIN(retail), title FROM books
WHERE category = 'COMPUTER'
GROUP BY title