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 回答