在SQL中,如何获取列的值在表中最低的所有行?

时间:2010-10-13 20:16:04

标签: sql database aggregate-functions

我是SQL的新手,我使用此查询来查找表格字段权重的最小值。

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

它确实显示一个具有最小值的字段,但只显示一个?但我有很多产品具有相同的最小重量。有没有办法指明我需要展示所有其他产品?

3 个答案:

答案 0 :(得分:16)

select * from table where weight = (select MIN(weight) from table)

答案 1 :(得分:3)

这可能是你要求的:

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

正如您可能猜到的,这将选择权重等于表中最小权重的所有prodict_id

答案 2 :(得分: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;

(找到绝对最小重量,就是那个)