【问题标题】:How to fetch FIRST row when there are same value for column in case of finding MIN value (SQL)在查找MIN值的情况下,当列的值相同时如何获取第一行(SQL)
【发布时间】:2013-09-05 10:29:02
【问题描述】:
在我的桌子上,
一列具有以下值:
Row Column
1 90
2 95
3 99
4 90
5 92
6 90
现在我想为上面的列获取min value,但如果有不止一行有same minimum value,则获取top row。我该怎么做?
如上例所示:我想要最小值(90)但第一行。
任何帮助将不胜感激。
【问题讨论】:
标签:
mysql
sql
multiple-columns
min
【解决方案1】:
MIN 也是按 ORDER 排序的第一个。因此,只需指定您想要的顺序并采取第一个:
WHERE Column is NOT NULL
ORDER BY Column, Row LIMIT 1
【解决方案2】:
使用这个查询select Row, min(column) from your_table order by Row desc limit 1
【解决方案3】:
如果你想以相同的插入行顺序获取记录,你可以使用:
select Row, min(Column) from my_table group by Column;
如果您还想获取已排序的行:
select Row, min(Column) from my_table group by Column order by column, row;
如果您只查看结果的第一行,只需在查询后面附加limit 1;
【解决方案4】:
SELECT TOP 1 * FROM m_test WHERE row IN (
从 m_test b 中选择行
WHERE b.column_cnt IN (SELECT min(a.column_cnt) FROM m_test a))
按行 ASC 排序