最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql通過group?by分組取最大時間對應(yīng)數(shù)據(jù)的兩種有效方法

 更新時間:2022年09月21日 11:26:10   作者:努力努力,努力努力  
日常開發(fā)當(dāng)中,經(jīng)常會遇到查詢分組數(shù)據(jù)中指定的記錄,下面這篇文章主要給大家介紹了關(guān)于mysql通過group?by分組取最大時間對應(yīng)數(shù)據(jù)的兩種有效方法,文章通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1、項目記錄表project_record的結(jié)構(gòu)和數(shù)據(jù)如下:

以下為項目記錄表project_record的所有數(shù)據(jù)。project_id為項目Id,on_project_time為上項目時間。(每一條數(shù)據(jù)代表著上某個項目(project_id)的時間(on_project_time)記錄)

2、我們的需求是:取出每個項目中最大上項目時間對應(yīng)的那條數(shù)據(jù)。(即根據(jù)project_id分組,取出每組中最大的on_project_time對應(yīng)的數(shù)據(jù)。)上方紅框是我們要查出的數(shù)據(jù)

3、錯誤代碼:

SELECT * 
FROM (SELECT * FROM project_record order by on_project_time desc) t 
GROUP BY project_id;

查詢結(jié)果錯誤:

結(jié)果看似正確的,實則是錯誤的。每個項目最大的上項目時間能正確查出,但是數(shù)據(jù)對應(yīng)的id不正確。

分析發(fā)現(xiàn),對于每一個分組,分組后的結(jié)果總是取組中主鍵(id)最小的數(shù)據(jù),即group by project_id 總會對project_id執(zhí)行排序(正序)

 而不論臨時表(t)中是否已排序,都會取組中主鍵id最小的一行數(shù)據(jù)。換句話說 臨時表t 內(nèi)的排序 無法影響外層的group by 的操作。

4、 正確方法如下:

方法一:

SELECT t1.*
FROM project_record t1
INNER JOIN (
SELECT DISTINCT(id) id
FROM project_record 
ORDER BY on_project_time DESC) AS t2 ON t2.id = t1.id
GROUP BY t1.project_id;

查詢結(jié)果正確:

思路:需要關(guān)聯(lián)一張表,這個關(guān)聯(lián)表t2中的數(shù)據(jù)是對原表t1按照上項目時間倒敘排列,注意,此處必須使用distinct,此處distinct的作用可以理解為將t1表數(shù)據(jù)順序固定為t2表順序。

主表GROUP BY 后會取出按條件分組后的第一條數(shù)據(jù)。

方法二:

select t1.*
FROM project_record t1
INNER JOIN (SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY on_project_time DESC),',',1) AS id
FROM project_record GROUP BY project_id) AS t2 ON t2.id = t1.id;

查詢結(jié)果正確:

SUBSTRING_INDEX 用法:取排序后的分組的第一條數(shù)據(jù)。 

本人習(xí)慣使用第一種方法。

總結(jié)

到此這篇關(guān)于mysql通過group by分組取最大時間對應(yīng)數(shù)據(jù)的兩種有效方法的文章就介紹到這了,更多相關(guān)mysql group by分組取對應(yīng)數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Navicat遠(yuǎn)程連接SQL Server并轉(zhuǎn)換成MySQL步驟詳解

    Navicat遠(yuǎn)程連接SQL Server并轉(zhuǎn)換成MySQL步驟詳解

    最近遇到一個需求是將SQL Server轉(zhuǎn)換為 MySQL的格式,由于不想在本地安裝 SQL Server,所以決定在遠(yuǎn)程的 Windows 服務(wù)器上安裝,并在本地使用Navicat遠(yuǎn)程連接它,然而在實現(xiàn)過程中遇到了諸多問題,記錄于此。感興趣的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • mysql臨時表插入數(shù)據(jù)方式

    mysql臨時表插入數(shù)據(jù)方式

    這篇文章主要介紹了mysql臨時表插入數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 如何使用mysql完成excel中的數(shù)據(jù)生成

    如何使用mysql完成excel中的數(shù)據(jù)生成

    這篇文章主要介紹了如何使用mysql完成excel中的數(shù)據(jù)生成的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • MySQL8.0無法遠(yuǎn)程連接訪問的解決方法

    MySQL8.0無法遠(yuǎn)程連接訪問的解決方法

    本文主要介紹了MySQL8.0無法遠(yuǎn)程連接訪問的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Windows10下MySQL5.7.31解壓版安裝與卸載方法

    Windows10下MySQL5.7.31解壓版安裝與卸載方法

    這篇文章主要介紹了Windows10下MySQL5.7.31解壓版安裝與卸載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • 達(dá)夢數(shù)據(jù)庫獲取SQL實際執(zhí)行計劃方法詳細(xì)介紹

    達(dá)夢數(shù)據(jù)庫獲取SQL實際執(zhí)行計劃方法詳細(xì)介紹

    在達(dá)夢數(shù)據(jù)庫中,使用EXPLAIN語句可以查看sql的執(zhí)行計劃,但EXPLAIN只生成執(zhí)行計劃,并不會真正執(zhí)行SQL語句,因此產(chǎn)生的執(zhí)行計劃有可能不準(zhǔn)。本章將帶領(lǐng)大家了解多種獲取SQL實際的執(zhí)行計劃的方法
    2022-10-10
  • MySQL 5.7 zip版本(zip版)安裝配置步驟詳解

    MySQL 5.7 zip版本(zip版)安裝配置步驟詳解

    這篇文章主要介紹了MySQL 5.7 zip版本(zip版)安裝配置步驟詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 一文解答為什么MySQL的count()方法這么慢

    一文解答為什么MySQL的count()方法這么慢

    這篇文章主要介紹了一文解答為什么MySQL的count()方法這么慢,mysql用count方法查全表數(shù)據(jù),在不同的存儲引擎里實現(xiàn)不同,myisam有專門字段記錄全表的行數(shù),直接讀這個字段就好了
    2022-07-07
  • MySQL如何修改賬號的IP限制條件詳解

    MySQL如何修改賬號的IP限制條件詳解

    這篇文章主要給大家介紹了關(guān)于MySQL如何修改賬號的IP限制條件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    這篇文章主要介紹了mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論

逊克县| 綦江县| 洛阳市| 丰镇市| 弋阳县| 中西区| 乡城县| 江源县| 景谷| 威海市| 承德县| 遂宁市| 宁安市| 江安县| 左云县| 连云港市| 攀枝花市| 康乐县| 班玛县| 睢宁县| 奉贤区| 徐汇区| 宿州市| 闵行区| 布尔津县| 大港区| 大埔区| 昭平县| 英德市| 山丹县| 察隅县| 遂宁市| 台安县| 中宁县| 咸阳市| 宿州市| 江孜县| 沅江市| 鄂州市| 无为县| 称多县|