2010-10-13 51 views
6

我是SQL的新手,我正在使用此查詢來查找表中字段權重的最小值。在SQL中,如何獲取表中列值最低的所有行?

SELECT product_id, 
     MIN(weight) 
    FROM table 
WHERE 1; 

它顯示一個字段的最小值,但只有一個?但我有許多產品具有相同的最低重量。有沒有辦法可以指定我需要展示所有其他產品?

+2

你想看看錶中的最小重量值的產品?如果有不止一個,你想看到他們 - 正確的?對於哪個數據庫? – 2010-10-13 20:21:29

+4

你知道你的'哪裏1'沒有做任何事情,對吧?你可以刪除它,它仍然會返回完全一樣的。 – 2010-10-13 20:24:25

回答

16
select * from table where weight = (select MIN(weight) from table) 
+0

很好,謝謝Fosco! :) – Zenet 2010-10-13 20:21:41

+1

+1:看起來不錯... – RedFilter 2010-10-13 20:23:26

3

這可能是你問的:

SELECT product_id FROM table WHERE weight = (SELECT MIN(weight) FROM table); 

正如你可能已經猜到,這將選擇所有prodict_id S其中重量等於在表中的最小重量。

1

不知道正是你想要哪一個,但無論這些應該做的伎倆:

SELECT product_id, MIN(weight) FROM table WHERE 1 GROUP BY product_id 

(列出所有產品ID和每個產品ID的最低重量)

SELECT product_id, weight FROM table WHERE weight = (SELECT min(weight) FROM table) 

(查看所有產品ID,其中重量等於最小重量)

SELECT min(weight) FROM table; 

(查找絕對最小值重量,就是這樣)

相關問題