如何选择具有最大列值的行?

时间:2018-01-23 04:09:12

标签: mysql sql

我不知道我的头衔是否可以理解,可能有人可以帮我编辑我的头衔吗?

我想做的就是,例如:
我有一张这样的桌子

enter image description here


Engineering出现5次article_category_abbr次,我想只选择一行最大值为num。 在这里,它将是Engineering-ENG-192,而Geriatrics&Gerontology将是Geriatrics&Gerontology-CLM-26 但我不知道如何使用mysql在整个表上执行此操作

3 个答案:

答案 0 :(得分:1)

您可以拥有一个子查询,该子查询获得每个sc的最大值,然后生成的行将根据两列 - scnum与表本身连接。< / p>

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  sc, MAX(num) AS Num
            FROM    tableName
            GROUP   BY sc
        ) b ON a.sc = b.sc
            AND a.num = b.num

这里是Demo

答案 1 :(得分:1)

将您的表格加入子查询,该子查询为每个num组找到最大的sc值。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
    SELECT sc, MAX(num) AS max_num
    FROM yourTable
    GROUP BY sc
) t2
    ON t1.sc = t2.sc AND
       t1.num = t2.max_num;

答案 2 :(得分:0)

USE MAX功能和GROUP BY这样的功能。 Here是更多信息。

SELECT myID, classTitle, subField, MAX(score) FROM myTable GROUP BY myID, classTitle, subField