让MIN()返回多行?

时间:2011-09-22 17:06:33

标签: mysql

是否有办法根据此查询的想法返回多行:

SELECT MIN(colname) AS value FROM table_name

由于 戴夫

3 个答案:

答案 0 :(得分:1)

不,没有办法为这个查询返回超过1行(示例中包含的那一行)

如果你想加倍确定,最后添加一个“LIMIT 1”。 (这会将结果集限制为1行,但这里不需要)

编辑

要回答你的问题“是否还有其他任何可以返回的查询,根据每行中包含MIN值的每行显示5行”,是的。您需要使用'group by'语法,例如:

SELECT category, MIN(price) AS value FROM table_name group by category

答案 1 :(得分:1)

如果您尝试在某些列中选择N(例如10个)最小值的行,则可以执行以下操作:

SELECT * FROM table_name ORDER BY colname ASC LIMIT 10;

如果我误解了这个问题,请道歉。

答案 2 :(得分:0)

要选择多行,一个解决方案是查找所有具有与先前确定的最小值匹配的值的行:

SELECT *
FROM tableA
JOIN
   (SELECT MIN(colname) AS minvalue FROM tableA) B
ON tableA.colname = B.minvalue

此解决方案与GROUP BY的不同之处在于它不会聚合(或限制)结果集中的数据。此外,此特定解决方案不考虑NULL是“最小值”的情况。

快乐的编码。