当前位置: 首页 > 面试题库 >

用max(column)获取行

罗均
2023-03-14
问题内容

每当我使用该max函数时,我都会以某种方式失去与其他值的所有连接,以便以后打印的行不再与我在其上最大运行的列相关。

所以我的表是:

user col1 col2 col3
1    1    2    3
1    3    4    5
2    2    3    1
3    1    1    3
3    2    4    6
4    5    1    5

所以如果我跑步

select user, col1, col2, max(col3) as col3
from table
group by user
order by user;

我会得到

user col1 col2 col3
1    1    2    5
2    2    3    1
3    1    1    6
4    5    1    5

因此,col3的最大值是正确的,但是没有获得该值的正确行。

我想要的是获取列的最大值并为每个用户返回该行。如果有多个最大值,即使它具有相同的用户标识,它也应返回所有用户。


问题答案:

其他数据库(例如MS SQL Server)不允许您将夸大的值与未汇总的值混合使用,只是因为您会得到错误的结果。

因此,如果要从最大值所在的记录中获取非聚合值,请再次针对该表进行连接:

select x.user, y.col1, y.col2, x.col3
from (
  select user, max(col3) as col3
  from table
  group by user
) x
inner join table y on y.user = x.user and y.col3 = x.col3
order by x.user


 类似资料:
  • 问题内容: 我有以下代码: 但是,数据库架构将列定义为长度为13。通过以下方式检索项目时: 具有数据将字符等于(因为分贝表模式允许13)仍然被显示为13,不会被截断。那么有什么用 ? 问题答案: 的属性用于定义字段的列长(其他类型将忽略该属性), 仅 在持久性框架将从实体生成数据库架构(几个)时使用,例如此选项(对于Hibernate on ): 在您的示例中,该列将创建为。 出于所有其他目的(插

  • 我制作了一个自定义方法,该方法应用@Query注释以从 SQL 数据库中提取数据。该方法使用字符串和可分页作为参数。该 Pageable 包含我的分页信息,例如请求的页面、出现次数限制、排序方向和属性。 每当我的 Pageable 传递属性名称进行排序时,Hibernate 都会使用相同的名称在 DB 上查找列,即使我在模型上注释了另一个列名。我在示例查询或派生方法实现方面没有遇到此问题。 我已经

  • 问题内容: 我无法在我拥有的symfony2项目中获得此查询。 My Table: 我需要获取“ numOrden”列中的值最大的课程(在这种情况下,这将是第三课程)。为此,我在Doctrine2中使用了以下查询: 或者 但它显示以下错误: 问题答案: 尝试在subselect中使用另一个别名,如下所示: 希望这个帮助

  • 问题内容: 我有一个使用ODBC连接连接到MSSQL数据库的Python程序。我正在使用的Python库是pypyodbc。 这是我的设置: Windows 8.1 x64 SQL Server 2014 x64 Python 2.7.9150 PyPyODBC 1.3.3 ODBC驱动程序:SQL Server本机客户端11.0 我遇到的问题是,当我查询带有varchar(max)列的表时,内容

  • 问题内容: 考虑此表: 此SQL查询返回每种类型中最昂贵的商品:SELECT类型,MAX(price)FROM产品GROUP BY类型 我还想为每行获取属于上述最高价格的字段 ID 和 名称 。什么SQL查询将返回这样的表? 问题答案: 这是经常出现的问题。我通常的解决方法在逻辑上等效于@Martin Smith给出的答案,但不使用子查询: 我的解决方案以及到目前为止在该线程上给出的所有其他解决方

  • 我想知道是否有可能同时调用和(在同一个调用/循环中)。 假设以下数据帧: 我想计算