mysql - 如何获取mysql中每组的最后一行

标签 mysql group-by

我有一个查询,用于检索团队的预订 查询计算和检索良好,但问题是我只想检索团队所做的最新预订,但我的查询显示他们所做的第一个预订。

这是完整的查询

select 
    tbl_lab_reservations.id, 
    tbl_lab_reservations.full_desc, 
    serial_number, 
    rsvn_owner, 
    reservation_id, 
    reservation_date_end, 
    reservation_date_start,
    (SELECT DATEDIFF( if(reservation_date_end = '0000-00-00', CURDATE(), reservation_date_end), 
    reservation_date_start)+1) as totalNumberOfDaysReserve 
from tbl_lab_reservations 
join tbl_lab_assets on tbl_lab_assets.id = tbl_lab_reservations.lab_id 
where tbl_lab_reservations.full_desc = 'Dell Optiplex 380' 
and tbl_lab_reservations.asset_status = 'Idle' 
group by serial_number, rsvn_owner 
ORDER BY tbl_lab_reservations.id ASC

最佳答案

您给出的查询对于显示从第一个到最新的记录是正确的,因为 order by 子句是 asc。要检索最新记录,

change the order by clause to desc

从中您将获得最新记录作为结果中的第一个记录(仅当您的tbl_lab_reservations.id 对于所有记录都是唯一的时)。

要仅获取最新记录并忽略其他记录,可以使用 limit 关键字。应该在查询结束时使用限制来设置要获取的记录的限制。

语法: limit N ,其中 N 指定记录数。

给你的例子。

link

select id, events from msql
             where id < '05'
             group by id
             order by id desc
             limit 1

关于mysql - 如何获取mysql中每组的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004434/

相关文章:

MySQL:使用有序月份使用 GROUP BY 计算运行总计

c# - 如何优化 linq 查询以在不合并结果的情况下按价格对日期进行分组

php - 如何检查 mysql 搜索 JOIN 查询期间是否存在行?

php - 有没有办法在 Mustache 模板中包含 mysql 查询?

python - 如何在 groupby.agg() 函数内组合 ';' .join 和 lambda x : x. tolist() ?

python - 按组减少 Pandas 数据框

尽管有索引,mysql select 查询还是很慢

MySQL:SQL 查询返回两个不同的最小值

php - MySQL 中 bool 值的 TINYINT 与 ENUM(0, 1)

sql-server-2008 - 每组 SQL Server 前 n 个的平均值