7
SELECT MIN(retail)
FROM books
WHERE category = 'COMPUTER'

正常に動作しますが、選択にタイトルを含めると、次のようになります。

SELECT MIN(retail), title
FROM books
WHERE category = 'COMPUTER'

そうではありません。なんで?それを機能させる方法は?

4

2 に答える 2

9

それがあなたの言いたいことであれば、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)

構文を確認するために使用したサンプル。

于 2011-04-08T17:40:00.597 に答える
6

MIN はレコードのグループに適用されるため、意味するレコードのグループを指定する必要があります。

各タイトルについて、最小の小売りを表示する場合は、次のものが必要です。

SELECT MIN(retail), title FROM books
WHERE category = 'COMPUTER'
GROUP BY title
于 2011-04-08T04:38:41.033 に答える