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

SQL結(jié)果如何根據(jù)某個字段取最新時間去重

 更新時間:2023年06月09日 12:11:23   作者:一枚小蝸牛H  
在日常的項目開發(fā)當(dāng)中,經(jīng)常會遇到獲取同一屬性相同的記錄,如何獲取記錄時間最新的那一條,下面這篇文章主要給大家介紹了關(guān)于SQL結(jié)果如何根據(jù)某個字段取最新時間去重的相關(guān)資料,需要的朋友可以參考下

現(xiàn)在有個sql,如果“propertyId”相同,取“updateTime”時間最新的那條記錄,其他過濾掉。

原始SQL

SELECT 
	A.id AS id,
	A.property_catalogue AS propertyCatalogue,
	A.create_time AS updateTime,
	A.create_user AS createUser,
	B.id AS propertyId,
	B.property_name AS propertyName,
	B.property_type AS propertyType,
	B.file_id AS fileId,
	B.p_property_id AS pPropertyId,
	B.ownership_type AS ownershipType,
	C.file_type AS fileType,
	C.file_size AS fileSize 
FROM
	ca_property_usage_log AS A
	LEFT JOIN ca_property_ownership AS B ON B.id = A.property_id
	LEFT JOIN ca_file_storage AS C ON B.file_id = C.id 
WHERE
	B.property_type = 0 
	AND B.is_retrieve = 0 
	AND B.update_time >= DATE_SUB( NOW(), INTERVAL 10 DAY ) 
	AND A.create_user = 3

1.使用ROW_NUMBER():(低版本沒有這個函數(shù)MySQL8以上才有)

結(jié)果SQL

為了通過 propertyId 去重并獲取每個 propertyId 對應(yīng)的最新時間的記錄,可以使用窗口函數(shù) ROW_NUMBER() 來對每個分組進(jìn)行排序,并在外部查詢中取出 rn 列等于 1 的行,即每個分組中的第一行,也就是最新時間的那一行。

------------------------------------------------------------------------------------------------------------------------

這里使用了窗口函數(shù) ROW_NUMBER() 來對每個分組進(jìn)行排序,并在外部查詢中取出 rn 列等于 1 的行,即每個分組中的第一行,也就是最新時間的那一行。

請注意,如果多條記錄具有相同的最新 updateTime 值,則此查詢中的 WHERE rn = 1 語句將返回其中一條記錄。如果需要返回所有具有相同最新時間的記錄,則可以使用 RANK()DENSE_RANK() 窗口函數(shù)代替 ROW_NUMBER()。

-- 現(xiàn)在有個sql,如果“propertyId”相同,取“updateTime”時間最新的那條記錄,其他過濾掉。
SELECT
	* 
FROM
	(
	SELECT
		A.id AS id,
		A.property_catalogue AS propertyCatalogue,
		A.create_time AS updateTime,
		A.create_user AS createUser,
		B.id AS propertyId,
		B.property_name AS propertyName,
		B.property_type AS propertyType,
		B.file_id AS fileId,
		B.p_property_id AS pPropertyId,
		B.ownership_type AS ownershipType,
		C.file_type AS fileType,
		C.file_size AS fileSize,
		ROW_NUMBER() OVER ( PARTITION BY B.id ORDER BY A.create_time DESC ) AS rn 
	FROM
		ca_property_usage_log AS A
		LEFT JOIN ca_property_ownership AS B ON B.id = A.property_id
		LEFT JOIN ca_file_storage AS C ON B.file_id = C.id 
	WHERE
		B.property_type = 0 
		AND B.is_retrieve = 0 
		AND B.update_time >= DATE_SUB( NOW(), INTERVAL 10 DAY ) 
		AND A.create_user = 1 
	) AS T 
WHERE
	rn = 1;

2.使用子查詢:

 結(jié)果SQL 

這個查詢使用了兩個子查詢。第一個子查詢用來獲取每個 propertyId 對應(yīng)的最新時間 max_create_time。第二個子查詢在外部查詢中使用了左連接,將 T 子查詢中的 propertyIdmax_create_time 與其他三個表連接,以獲取需要的數(shù)據(jù)。如果某個 propertyId 沒有與 T 子查詢中的任何一行匹配,則該 propertyId 不會出現(xiàn)在結(jié)果集中。

------------------------------------------------------------------------------------------------------------------------

請注意,在此查詢中,我們假設(shè)每個 propertyId 對應(yīng)的記錄數(shù)量不會太大(例如小于幾千條)。如果每個 propertyId 對應(yīng)的記錄數(shù)量很大,則可能會影響查詢的性能。

SELECT 
	A.id AS id,
	A.property_catalogue AS propertyCatalogue,
	A.create_time AS updateTime,
	A.create_user AS createUser,
	B.id AS propertyId,
	B.property_name AS propertyName,
	B.property_type AS propertyType,
	B.file_id AS fileId,
	B.p_property_id AS pPropertyId,
	B.ownership_type AS ownershipType,
	C.file_type AS fileType,
	C.file_size AS fileSize 
FROM (
    SELECT 
        A.property_id, 
        MAX(A.create_time) AS max_create_time
    FROM 
        ca_property_usage_log AS A
        LEFT JOIN ca_property_ownership AS B ON B.id = A.property_id
    WHERE 
        B.property_type = 0 AND B.is_retrieve = 0 
        AND B.update_time >= DATE_SUB(NOW(), INTERVAL 10 DAY) AND A.create_user = 3
    GROUP BY A.property_id
) AS T
	LEFT JOIN ca_property_usage_log AS A ON T.property_id = A.property_id AND T.max_create_time = A.create_time
	LEFT JOIN ca_property_ownership AS B ON B.id = A.property_id
	LEFT JOIN ca_file_storage AS C ON B.file_id = C.id 
WHERE
	B.property_type = 0 
	AND B.is_retrieve = 0 
	AND B.update_time >= DATE_SUB( NOW(), INTERVAL 10 DAY ) 
	AND A.create_user = 3

總結(jié)

到此這篇關(guān)于SQL結(jié)果如何根據(jù)某個字段取最新時間去重的文章就介紹到這了,更多相關(guān)SQL取最新時間去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • win10下安裝兩個MySQL5.6.35數(shù)據(jù)庫

    win10下安裝兩個MySQL5.6.35數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了win10下兩個MySQL5.6.35數(shù)據(jù)庫安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Docker搭建MySQL的實現(xiàn)示例

    Docker搭建MySQL的實現(xiàn)示例

    本文主要介紹了Docker搭建MySQL的實現(xiàn)示例,包括MySQL 8.0和MySQL 5.7,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • 深入分析MySQL數(shù)據(jù)類型 DECIMAL

    深入分析MySQL數(shù)據(jù)類型 DECIMAL

    這篇文章主要介紹了MySQL數(shù)據(jù)類型 DECIMAL的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解

    MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解

    這篇文章主要介紹了MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Mysql5.7在Centos6中的安裝方法

    Mysql5.7在Centos6中的安裝方法

    這篇文章主要介紹了Mysql5.7在Centos6中的安裝方法,需要的朋友可以參考下
    2017-06-06
  • centos 6下安裝innodb_ruby

    centos 6下安裝innodb_ruby

    innodb_ruby 是使用 Ruby 編寫的 InnoDB 文件格式解析器。innodb_ruby 的目的是暴露一些其他隱藏的 InnoDB 原理。這些代碼并不適合生產(chǎn)環(huán)境使用。
    2017-01-01
  • MySQL 表空卻 ibd 文件過大的問題及解決方法

    MySQL 表空卻 ibd 文件過大的問題及解決方法

    本文給大家介紹MySQL表空卻ibd文件過大的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-08-08
  • Linux服務(wù)器中MySQL遠(yuǎn)程連接的開啟方法

    Linux服務(wù)器中MySQL遠(yuǎn)程連接的開啟方法

    今天在Linux服務(wù)器上安裝了msyql數(shù)據(jù)庫,在本地訪問的時候可以訪問,但是我想通過遠(yuǎn)程的方式訪問的時候就不能訪問了,查詢資料后發(fā)現(xiàn),Linux下MySQL默認(rèn)安裝完成后只有本地訪問的權(quán)限,沒有遠(yuǎn)程訪問的權(quán)限,需要你給指定用戶設(shè)置訪問權(quán)限才能遠(yuǎn)程訪問該數(shù)據(jù)庫
    2017-06-06
  • mysql序號rownum行號實現(xiàn)方式

    mysql序號rownum行號實現(xiàn)方式

    這篇文章主要介紹了mysql序號rownum行號實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 一篇文章帶你了解MySQL索引下推

    一篇文章帶你了解MySQL索引下推

    索引條件下推,也叫索引下推,英文全稱Index?Condition?Pushdown,簡稱ICP,索引下推是MySQL5.6新添加的特性,用于優(yōu)化數(shù)據(jù)的查詢,下面這篇文章主要給大家介紹了關(guān)于MySQL索引下推的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評論

云林县| 论坛| 手游| 淮安市| 游戏| 滨州市| 台南市| 石楼县| 建平县| 长泰县| 贵溪市| 聂拉木县| 清远市| 鄂托克旗| 嵩明县| 定襄县| 清远市| 彭州市| 高邮市| 奈曼旗| 罗源县| 岳池县| 九寨沟县| 桦南县| 安达市| 长兴县| 资溪县| 长阳| 兴仁县| 莎车县| 扶绥县| 礼泉县| 徐汇区| 克什克腾旗| 华池县| 呼和浩特市| 西宁市| 苏尼特左旗| 简阳市| 廉江市| 夏邑县|