首页 > 解决方案 > SQL - 聚合一些列并将 id 映射到特定列

问题描述

所以我有一个返回这个的查询。

在此处输入图像描述

现在我想创建一个查询来聚合它以获得这样的结果..

在此处输入图像描述

我尝试了聚合,但部分名称显示错误的值

select max(id), max(receipt_id), max(section_id), max(section_name) from t;

在此处输入图像描述

我如何映射 section_id 以返回其相应的 section_name?原来 max 返回最大值。如果是字符串,它返回最长的。

谢谢你。

标签: sqloracle

解决方案


你可以试试这个:

select qry.*, tbl.section_name 
from 
  tbl, (select max(id) id, max(receipt_id) receipt_id, max(section_id) section_id from tbl) qry
where tbl.section_id = qry.section_id

https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=feb3965fa96e1a2ac9194173e136cf09


推荐阅读