【问题标题】: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 排序

          【讨论】:

            猜你喜欢
            • 2018-04-08
            • 2016-11-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多