Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择MySQL数据库中单个列上具有最大值的行_Mysql_Sql - Fatal编程技术网

选择MySQL数据库中单个列上具有最大值的行

选择MySQL数据库中单个列上具有最大值的行,mysql,sql,Mysql,Sql,我有一个名为NetLogs的MySQL表 servername , session , label , occurence | Nost | 11973 | Unknown | 1 | | Nost | 11976 | Scan | 74 | | Nost | 11976 | Unknown | 35 | | Gold | 11998 | Attack | 1 | 我需要去 Nost

我有一个名为NetLogs的MySQL表

servername   , session , label     , occurence
| Nost       |   11973 | Unknown   |   1 |
| Nost       |   11976 | Scan      |  74 |
| Nost       |   11976 | Unknown   |  35 |
| Gold       |   11998 | Attack    |   1 |
我需要去

Nost | 11973|unknown|1|
Nost| 11976 |Scan | 74|
Gold|11998|Attack|1|
结果,

我试过:

select t1.* from NetLogs t1 left join NetLogs t2 
on t1.servername=t2.servername and t1.session=t2.session and t1.occurence < t2.occurence 
where t2.occurence is null;
但我得到错误1137-无法重新打开表

我也会满足于同样的结果,而不考虑最后发生的次数

所以下面的一些解决方案对我不起作用,所以我将表重新制作为常规表,而不是临时表,它们起作用了,这让我觉得我可能曾经有过一个工作查询,但由于我在临时表上运行它,所以得到了错误

这正是我想要的:

从NetLogs a中选择a.*,其中a.occurrence=从NetLogs b中选择Maxoccurrence,其中a.session=b.session和a.serverName=b.serverName

SELECT  a.*
FROM    NetLogs a
        INNER JOIN
        (
            SELECT  session, MAX(occurence) occurence
            FROM    NetLogs
            GROUP   BY session
        ) b ON a.session = b.session AND
                a.occurence = b.occurence
另一方面,

SELECT  a.*
FROM    NetLogs a
WHERE   a.occurence = 
        (
            SELECT  MAX(occurence) occurence
            FROM    NetLogs b
            WHERE   a.session = b.session
        ) 
查询:

可能重复的
SELECT  a.servername,
        a.session,
        a.label,
        a.occurence
FROM    NetLogs a
 LEFT JOIN NetLogs b
  ON b.session = a.session
  AND a.occurence < b.occurence
WHERE b.session IS NULL
| SERVERNAME | SESSION |   LABEL | OCCURENCE |
|------------|---------|---------|-----------|
|       Nost |   11973 | Unknown |         1 |
|       Nost |   11976 |    Scan |        74 |
|       Gold |   11998 |  Attack |         1 |