mysql - 按具有最高值列的显示行分组

标签 mysql sql

我有一个像这样的表opname:

enter image description here

我想选择基于 id_barang 的 group by 的表 opname,我想显示具有 group by 结果的最高 id 的行。

我是这样写查询的

SELECT 
    MAX(id), id_barang, tgl, ket, kondisi 
FROM  
    `opname` 
GROUP BY 
    id_barang

enter image description here

但为什么列 tgl、ket、kondisi 的值与 max(id) 不匹配 - 如何解决?我想按结果显示group中id最高的行

最佳答案

您可以通过子查询使用以下内容:

SELECT id, id_barang, tgl, ket, kondisi FROM `opname` WHERE id IN (
    SELECT MAX(id) FROM `opname` GROUP BY id_barang
)

通过内部 SELECT,您可以获得分组结果的所有最大 ID。外部 SELECT 从您的原始表中选择具有所有这些 ID 的所有行。

关于mysql - 按具有最高值列的显示行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920834/

相关文章:

sql - 运行插入 SQL 查询

mysql - DATE() MONTH() 等函数减慢查询速度

sql - 如何在 SQL Select 语句上检查 List 中的特定字符串?

php - MySql PDO 开始事务并将其传递给对象

mysql - 光滑的动态分组

sql : get consecutive group 'n' rows (could be inbetween)

sql - 选择具有最大值的记录

MySQL #1005 无法创建表,但没有说明原因,errno :150

mysql - 用户 'root' @'localhost' 从 servlet 的访问被拒绝

php - 当用户点击电子邮件中的某些链接时如何登录我的网络应用程序