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

Mysql分組查詢(xún)?nèi)ax那條記錄其它字段方式

 更新時(shí)間:2023年08月15日 16:03:55   作者:一葉飄零_sweeeet  
這篇文章主要介紹了Mysql分組查詢(xún)?nèi)ax那條記錄其它字段方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mysql分組查詢(xún)?nèi)ax那條記錄其它字段

需求描述

現(xiàn)有有需求要按類(lèi)型分組,查詢(xún)出每一分組最近的一條記錄,返回字段包含id,定時(shí)任務(wù)執(zhí)行時(shí)間(start_time)和任務(wù)id(job_id)。

SELECT id, MAX(start_time) AS startTime,job_id AS jobId FROM `sta_task_alarm` GROUP BY `job_id`;

問(wèn)題描述

上面這個(gè)SQL查詢(xún)出來(lái)的id 并不是我們想要的max 那條記錄的id,那么我們?cè)趺床樵?xún)到

MAX(start_time) 那條對(duì)應(yīng)的 id和job_id(這個(gè)上面可以查詢(xún)出來(lái))呢?

想到用 GROUP_CONCAT 函數(shù)去實(shí)現(xiàn):

SELECT SUBSTRING_INDEX( GROUP_CONCAT(id ORDER BY `id` DESC),',',1) AS id,job_id AS jobId
SUBSTRING_INDEX( GROUP_CONCAT(start_time ORDER BY `start_time` DESC),',',1) AS startTime 
FROM `sta_task_alarm` GROUP BY job_id;

這樣是可以實(shí)現(xiàn),查詢(xún)出的結(jié)果為:

這個(gè)結(jié)果是正確的。

驗(yàn)證一下原始數(shù)據(jù):

最后:

其實(shí)因?yàn)閕d是自增的,按下面這樣查就可以了:

SELECT MAX(id) AS id, job_id AS jobId, MAX(start_time) AS startTime	
	FROM `sta_task_alarm` WHERE is_delete = 0 GROUP BY job_id;

執(zhí)行結(jié)果:

Mysql分組查詢(xún)max值所在的記錄

臨近下班,要寫(xiě)一個(gè)sql。著急下班,所以有點(diǎn)亂。想了半天沒(méi)想出來(lái)這么寫(xiě)這個(gè)sql。查詢(xún)表里的max值和這個(gè)值所在的記錄。

晚上睡前才意識(shí)到自己吧內(nèi)聯(lián)inner jion 概念搞混了。inner只取字段相等的記錄。所以查詢(xún)偽代碼如下。

例如,查詢(xún)一個(gè)表 table 每一天記錄的最大時(shí)間。

先查詢(xún)這個(gè)表A中,每一天記錄的最大時(shí)間。將查詢(xún)結(jié)果作為另一個(gè)表B。然后將兩個(gè)表關(guān)聯(lián),關(guān)聯(lián)條件既B表最大時(shí)間等于A表時(shí)間和B表天數(shù)等于A表天數(shù)。

SELECT
? ? B.new_date,
? ? A.*
FROM
? ? mytable AS A
INNER JOIN (
? ? SELECT
? ? ? ? max(date_time) new_date,
? ? ? ? myday
? ? FROM
? ? ? ? mytable
? ? GROUP BY
? ? ? ? myday
) AS B ON A.date_time = B.new_date
AND A.myday = B.myday

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論