Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Sql 按另一行的最大值选择行_Sql_Ms Access_Group By_Max - Fatal编程技术网

Sql 按另一行的最大值选择行

Sql 按另一行的最大值选择行,sql,ms-access,group-by,max,Sql,Ms Access,Group By,Max,我正在使用Access中的sql执行此操作 这个问题以前可能已经得到了回答,但我不知道如何提出正确的问题,因此我无法找到解决方案 我有一个名为table的表: attr_1 attr_2 attr3 1 A 10 1 B 5 2 C 3 3 D 7 3 E 8 3 F 11 我希望结果按attr_1分组,其中attr3具有最大值,并且

我正在使用Access中的sql执行此操作

这个问题以前可能已经得到了回答,但我不知道如何提出正确的问题,因此我无法找到解决方案

我有一个名为table的表:

 attr_1  attr_2  attr3
 1       A       10
 1       B       5
 2       C       3
 3       D       7
 3       E       8
 3       F       11
我希望结果按attr_1分组,其中attr3具有最大值,并且来自同一行的attr_2也具有最大值。因此,这就是我所需要的:

 1      A       10
 2      C       3
 3      F       11
如果我不需要attr_2,那么我知道如何使用groupby和MAX来实现这一点,但我不知道如何在sql语句中包含这个attr_2以获得想要的结果


请提供帮助。

您可以在子查询中获取最大值,并加入表以获取所有值

SELECT attr_1, attr_2, attr3
FROM (
  SELECT attr_1, max(attr3) as maxAttr3
  FROM Table1
  GROUP BY attr_1 )T
JOIN Table1 T1
on T.maxAttr3 = T1.attr3
and T.attr_1 = T1.attr_1 

您可以在子查询中获取最大值,并连接到表以获取所有值

SELECT attr_1, attr_2, attr3
FROM (
  SELECT attr_1, max(attr3) as maxAttr3
  FROM Table1
  GROUP BY attr_1 )T
JOIN Table1 T1
on T.maxAttr3 = T1.attr3
and T.attr_1 = T1.attr_1 

您可以在子查询中获取最大值,并连接到表以获取所有值

SELECT attr_1, attr_2, attr3
FROM (
  SELECT attr_1, max(attr3) as maxAttr3
  FROM Table1
  GROUP BY attr_1 )T
JOIN Table1 T1
on T.maxAttr3 = T1.attr3
and T.attr_1 = T1.attr_1 

您可以在子查询中获取最大值,并连接到表以获取所有值

SELECT attr_1, attr_2, attr3
FROM (
  SELECT attr_1, max(attr3) as maxAttr3
  FROM Table1
  GROUP BY attr_1 )T
JOIN Table1 T1
on T.maxAttr3 = T1.attr3
and T.attr_1 = T1.attr_1 
你根本不需要一群人。您只需要选择最近的行。假设该值是唯一的,则可以执行以下操作:

select t.*
from table as t
where t.attr3 = (select max(t2.attr3) from table as t2 where t2.attr_1 = t.attr_1);
你根本不需要一群人。您只需要选择最近的行。假设该值是唯一的,则可以执行以下操作:

select t.*
from table as t
where t.attr3 = (select max(t2.attr3) from table as t2 where t2.attr_1 = t.attr_1);
你根本不需要一群人。您只需要选择最近的行。假设该值是唯一的,则可以执行以下操作:

select t.*
from table as t
where t.attr3 = (select max(t2.attr3) from table as t2 where t2.attr_1 = t.attr_1);
你根本不需要一群人。您只需要选择最近的行。假设该值是唯一的,则可以执行以下操作:

select t.*
from table as t
where t.attr3 = (select max(t2.attr3) from table as t2 where t2.attr_1 = t.attr_1);


非常感谢您的快速回复。这看起来不错,但我得到了语法错误。。。我现在正试图找到原因,它说:FROM子句中的语法错误我刚刚创建了与我在问题中描述的相同的表-例如,那个表-只是为了确保,但仍然是相同的错误。我甚至在属性名中添加了同样的不一致性:@Bezk-这个语法看起来没有什么问题。确保您使用了正确的表名此示例使用表1…我马上就到了。第二个内部选择有效。access似乎有点不利于命名表:。我会报告我的进展…我已经开始工作了。我必须更改第一行以选择Table1.attr_1、attr_2、attr 3,并且必须添加内部联接而不是联接。这可能是一些不适用于其他数据库的访问方式。。。?它也给出了相同的结果,不管有没有最后一行,T.attr_1=T1.attr_1??再次感谢您的努力,但Gordon的解决方案是开箱即用的,所以我必须标出他的答案…非常感谢您的快速回复。这看起来不错,但我得到了语法错误。。。我现在正试图找到原因,它说:FROM子句中的语法错误我刚刚创建了与我在问题中描述的相同的表-例如,那个表-只是为了确保,但仍然是相同的错误。我甚至在属性名中添加了同样的不一致性:@Bezk-这个语法看起来没有什么问题。确保您使用了正确的表名此示例使用表1…我马上就到了。第二个内部选择有效。access似乎有点不利于命名表:。我会报告我的进展…我已经开始工作了。我必须更改第一行以选择Table1.attr_1、attr_2、attr 3,并且必须添加内部联接而不是联接。这可能是一些不适用于其他数据库的访问方式。。。?它也给出了相同的结果,不管有没有最后一行,T.attr_1=T1.attr_1??再次感谢您的努力,但Gordon的解决方案是开箱即用的,所以我必须标出他的答案…非常感谢您的快速回复。这看起来不错,但我得到了语法错误。。。我现在正试图找到原因,它说:FROM子句中的语法错误我刚刚创建了与我在问题中描述的相同的表-例如,那个表-只是为了确保,但仍然是相同的错误。我甚至在属性名中添加了同样的不一致性:@Bezk-这个语法看起来没有什么问题。确保您使用了正确的表名此示例使用表1…我马上就到了。第二个内部选择有效。access似乎有点不利于命名表:。我会报告我的进展…我已经开始工作了。我必须更改第一行以选择Table1.attr_1、attr_2、attr 3,并且必须添加内部联接而不是联接。这可能是一些不适用于其他数据库的访问方式。。。?它也给出了相同的结果,不管有没有最后一行,T.attr_1=T1.attr_1??再次感谢您的努力,但Gordon的解决方案是开箱即用的,所以我必须标出他的答案…非常感谢您的快速回复。这看起来不错,但我得到了语法错误。。。我现在正试图找到原因,它说:FROM子句中的语法错误我刚刚创建了与我在问题中描述的相同的表-例如,那个表-只是为了确保,但仍然是相同的错误。我甚至在属性名中添加了同样的不一致性:@Bezk-这个语法看起来没有什么问题。确保您使用了正确的表名此示例使用表1…我马上就到了。第二个内部选择有效。看来access有点不利于na
正在对表进行排序:。我会报告我的进展…我已经开始工作了。我必须更改第一行以选择Table1.attr_1、attr_2、attr 3,并且必须添加内部联接而不是联接。这可能是一些不适用于其他数据库的访问方式。。。?它也给出了相同的结果,不管有没有最后一行,T.attr_1=T1.attr_1??再次感谢您的努力,但戈登的解决方案是开箱即用的,所以我必须标出他的答案。。。