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

Mysql仅从最新日期选择不同的记录

蓝泰平
2023-03-14
问题内容

这是我的表结构-

TABLE : COURSE_LOG

-----------------------------------------------------
|   ID   |   USERNAME   |  COURSE_ID   |    LDATE   |
-----------------------------------------------------
|   1    |     user1    |      22      | 2013-06-01 |
-----------------------------------------------------
|   2    |     user1    |      54      | 2013-06-03 |
-----------------------------------------------------
|   3    |     user1    |      22      | 2013-06-03 |
-----------------------------------------------------
|   4    |     user2    |      71      | 2013-06-04 |
-----------------------------------------------------

我想清楚地选择所有user1COURSE_ID数据(以及日期)。由于日期在两个相同的COURSE_ID条目之间会有所不同,因此我想选择日期最近的行。我希望得到这样的结果-

-----------------------------
|  COURSE_ID   |    LDATE   |
-----------------------------
|      54      | 2013-06-03 |
-----------------------------
|      22      | 2013-06-03 |
-----------------------------
|      71      | 2013-06-04 |
-----------------------------

我不想要这个-

-----------------------------    
|      22      | 2013-06-01 |    // THIS SHOULD BE OMITTED FROM RESULT BECAUSE THERE
-----------------------------    // IS ANOTHER RECENT ENTRY WITH THE SAME COURSE_ID

我正在使用此查询-

SELECT DISTINCT(COURSE_ID), LDATE FROM COURSE_LOG
WHERE USERNAME = 'user1' 
AND LDATE = (
    SELECT LDATE 
    FROM COURSE_LOG
    WHERE USERNAME = 'user1' 
    ORDER BY LDATE DESC 
    LIMIT 1
)

但是它只能挑一排。我该如何纠正?


问题答案:

试试这个查询

如果只想user1使用此查询:

select username, course_id, max(ldate) as date
from tbl 
where username='user1'
group by course_id

SQL字段

| USERNAME | COURSE_ID |       DATE |
-------------------------------------
|    user1 |        22 | 2013-06-03 |
|    user1 |        54 | 2013-06-03 |

如果要查找所有用户的最新日期,请使用此查询

select username, course_id, max(ldate) as date
from tbl 
group by username, course_id

在此查询中,user2还将包含的数据

| USERNAME | COURSE_ID |       DATE |
-------------------------------------
|    user1 |        22 | 2013-06-03 |
|    user1 |        54 | 2013-06-03 |
|    user2 |        71 | 2013-06-04 |


 类似资料:
  • 问题内容: 我将对各种rpc调用的响应存储在具有以下字段的mysql表中: 为和的所有现有组合选择最新响应的最佳方法是什么? 对于每个日期,对于给定的方法/ ID,只能有一个响应。 并非所有呼叫组合在给定日期都必须存在。 有数十种方法,数千个ID和至少365个不同的日期 样本数据: 所需结果: (我不认为这是同一个问题-它不会给我最新的信息) 问题答案: 自我回答,但是随着表的增长,我不确定这是否

  • 问题内容: 我确实进行了搜索,发现该SQL在最近的日期之前选择了行,该 行 与我想要的日期非常接近,但我似乎无法使它起作用。 我收到一个错误,因为选择列表中的列“ ID”不包含在聚合函数或GROUP BY子句中,所以它无效。 我想要每个不同名称的最新日期 这是我想要的一个例子 理想的结果 我正在使用Microsoft SQL Server 2008 感谢您的帮助或指向正确的方向 问题答案: Sel

  • 问题内容: 如何显示和计算日期为昨天的值?我曾经在数据库中插入日期。例: 我想显示表中存在多少个具有多个URL的URL,以及昨天有多少个URL被访问过。结果示例: 我已经有了获取昨天日期的想法,但是我没有一个想法来计算昨天存在一个URL的次数和计算表中存在URL的次数。 问题答案: 获取昨天日期的最简单最佳方法是: 您的查询将是: 出于好奇,为您提供满足条件的行 数 的原因(否则将需要繁琐且冗长的

  • 我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。

  • 是否可以允许datePicker只显示日期而隐藏年和月? 我有两个活动,在活动A中,我有datePicker,它只显示月份和年份。在活动B中,我希望datePicker只显示日期,但无法从Internet上找到任何解决方案。 活动A截图 活动B

  • 问题内容: 我正在尝试选择mysql表中的重复行,它对我来说很好,但问题是它不是让我选择该查询中的所有字段,而是让我选择用作不同的字段名,让我写查询更好的了解 第一个工作正常 现在,当我尝试选择所有字段时,我最终会出现错误 我正在尝试选择最新的重复项,比如说ticket_id 127是行ID 7、8、9的3倍,因此我想选择一次,最新条目在这种情况下为9,这适用于所有其余项ticket_id的 任何