mysql - 为特定值选择每个最新的行

标签 mysql sql

你好,我有一张这样的 table :

SN  | User | is_borrowed | date
105 |  1   |      1      |2019-1-1
105 |  1   |      0      |2019-2-1
105 |  1   |      1      |2019-3-1
106 |  2   |      1      |2019-4-1
107 |  1   |      1      |2019-5-1
106 |  2   |      0      |2019-6-1
106 |  2   |      1      |2019-8-1
107 |  1   |      0      |2019-9-1
107 |  2   |      1      |2019-10-1

想要的输出是显示借用(未归还)和 user=1 的内容:

SN  | User | is_borrowed | date
105 |  1   |      1      |2019-3-1

User=2 和借用(不归还)的输出:

SN  | User | is_borrowed | date
106 |  2   |      1      |2019-8-1
107 |  2   |      1      |2019-10-1

总而言之,我想要一个当前借用但未归还给每个用户的设备列表。可悲的是,我什么也没想到:/

最佳答案

查看您的预期结果似乎您正在寻找 SN 的最大(日期),用户 where is_borrowed = 1

select SN, user, is_borrowed,  max(date)
from my_table 
where is_borrowed = 1 
group by  SN, user, is_borrowed

或者对于实际借用的设备

Select * from my_table m
inner join t (
  select SN, is_borrowed,  max(date) max_date 
  from my_table 
  where is_borrowed = 1 
  group by  SN,  is_borrowed
) t on t.SN =  m.SN AND t.max_date = m.date

关于mysql - 为特定值选择每个最新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026881/

相关文章:

mysql - 我可以在没有两个查询的情况下执行此操作吗?

sql - 所有表名称列表

mysql - 使用 count case 且列为 null 时如何返回类似 '0' 的值?

mysql - 根据其他两个表获取一行

mysql - 从 MySQL 中检索时间为 HH :MM format

mysql - 使用(mysql

java - 当给定查询在左连接中有内部查询时如何获取列名称和列标签

php - 在 codeigniter 的 form_multiselect() 中设置多个值

mysql - 在 SQL 数据库中存储时间戳值

mysql - 检索组合键的组合