欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql 存在多條數(shù)據(jù)時如何按時間取最新的那一組數(shù)據(jù)(思路詳解)

 更新時間:2024年04月24日 09:05:22   作者:jerry-89  
這篇文章主要介紹了Mysql 存在多條數(shù)據(jù)時如何按時間取最新的那一組數(shù)據(jù),本文給大家分享兩種思路結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

1、數(shù)據(jù)如下,獲取每個用戶最近的一次登錄數(shù)據(jù)

思路1:order by + group by

  先根據(jù)UserId+LogInTime排序,再利用Group分組,即可得到每個User_Id的最新數(shù)據(jù)。

SELECT * FROM login_db l ORDER BY l.user_id, l.login_time DESC;

  排序結果:

  再對結果進行分組:

SELECT * FROM (
    SELECT *
    FROM login_db l
    ORDER BY l.user_id, l.login_time DESC
    ) lb
GROUP BY lb.user_id;

  得到的結果如下:

   從結果可知,這并不是我們預期的結果。因MySql版本的原因,對Group By進行了優(yōu)化,導致前面的排序不再生效,而是保留了排序前的結果。

  為了使Group By根據(jù)我們排序后的結果進行分組,需要加入關鍵字Limit告訴MySql需要進行排序。

  修改之后的語句如下:

  
SELECT * FROM (
    SELECT *
    FROM login_db l
    ORDER BY l.user_id, l.login_time DESC LIMIT 100000
    ) lb
GROUP BY lb.user_id;

 得到了預期的結果:

   從SQL中,不難看出,這個方法存在一個缺陷,就是必須要保證原始數(shù)據(jù)在limit范圍內,否則分組的結果就不會是全部的數(shù)據(jù),結果自然也是不能保證的。

思路2:多表關聯(lián)

  利用多表關聯(lián),同一緯度(User_Id)下的登錄時間進行比較,得出最近的時間。

  
select b1.*
from login_db b1
where (select COUNT(1)
       from login_db b2
       where b2.user_id = b1.user_id and b1.login_time <= b2.login_time) <= 1;

到此這篇關于Mysql 存在多條數(shù)據(jù)時如何按時間取最新的那一組數(shù)據(jù)的文章就介紹到這了,更多相關Mysql 取最新數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解析優(yōu)化MySQL插入方法的五個妙招

    解析優(yōu)化MySQL插入方法的五個妙招

    本篇文章是對優(yōu)化MySQL插入方法的五個妙招進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫運行效率

    MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫運行效率

    網(wǎng)站系統(tǒng)上線至今,數(shù)據(jù)量已經(jīng)不知不覺上到500M,近8W記錄了。涉及數(shù)據(jù)庫操作的基本都是變得很慢了,這篇文章主要是說明配置并不是數(shù)據(jù)庫操作慢的主要原因
    2012-01-01
  • MySQL日期時間函數(shù)知識匯總

    MySQL日期時間函數(shù)知識匯總

    這篇文章主要介紹了MySQL日期時間函數(shù)知識匯總,這不同數(shù)據(jù)庫之間基本相同,只會有個別函數(shù)的差異。下文詳細介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 檢查MySQL中的列是否為空或Null的常用方法

    檢查MySQL中的列是否為空或Null的常用方法

    在MySQL數(shù)據(jù)庫中,我們經(jīng)常需要檢查某個列是否為空或Null,空值表示該列沒有被賦值,而Null表示該列的值是未知的或不存在的,在本文中,我們將討論如何在MySQL中檢查列是否為空或Null,并探討不同的方法和案例,需要的朋友可以參考下
    2023-11-11
  • 詳解Mysql中的視圖

    詳解Mysql中的視圖

    mysql中的視圖,視圖與表有很多相似的地方,視圖也是由若干個字段以及若干條記錄構成,視圖也可以作為select語句的數(shù)據(jù)源
    2017-04-04
  • MySQL排序優(yōu)化詳細解析

    MySQL排序優(yōu)化詳細解析

    這篇文章主要介紹了MySQL排序優(yōu)化詳細解析,MySQL有兩種方式生成有序的結果:1.通過排序操作;2.按索引順序掃描,如果EXPLAIN出來的type列的值為"index",則說明使用了索引掃描來做排序,需要的朋友可以參考下
    2024-01-01
  • 超越MySQL 對流行數(shù)據(jù)庫進行分支的知識小結

    超越MySQL 對流行數(shù)據(jù)庫進行分支的知識小結

    盡管MySQL是最受歡迎的程序之一,但是許多開發(fā)人員認為有必要將其拆分成其他項目,并且每個分支項目都有自己的專長。該需求,以及 Oracle 對核心產(chǎn)品增長緩慢的擔憂,導致出現(xiàn)了許多開發(fā)人員感興趣的子項目和分支
    2012-01-01
  • MySQL實現(xiàn)統(tǒng)計過去12個月每個月的數(shù)據(jù)信息

    MySQL實現(xiàn)統(tǒng)計過去12個月每個月的數(shù)據(jù)信息

    這篇文章主要介紹了MySQL實現(xiàn)統(tǒng)計過去12個月每個月的數(shù)據(jù)信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • sql ROW_NUMBER()與OVER()方法案例詳解

    sql ROW_NUMBER()與OVER()方法案例詳解

    這篇文章主要介紹了sql ROW_NUMBER()與OVER()方法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Navicat出現(xiàn)無法遠程連接MySql服務器問題的解決辦法

    Navicat出現(xiàn)無法遠程連接MySql服務器問題的解決辦法

    這篇文章主要介紹了Navicat出現(xiàn)無法遠程連接MySql服務器問題的解決辦法,文章通過思路判斷出現(xiàn)問題的情況,然后進行逐一排查,確定問題出現(xiàn)的原因并給出解決辦法,本文對此問題的解決介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論