MySQL SQL分組取最大值的方法

2021-10-05 12:46:51 字數 986 閱讀 3119

看了很多分組之後獲取最大值的sql部落格,真的是滿心歡喜,一試就涼,還得自食其力。

簡單的三個字段,idridonline_date,目前就是想根據rid進行分組,取online_date中的最大值,

最開始想的方法就是根據rid進行group by,然後用id進行倒序,來獲取最大值,後來發現group by之後又隨機排序了,無法獲得目標值。

select id,rid,online_date 

from

(select

*from

`rg_rule_online_record`

order

by rid,id desc

)e group

by rid ;

後來嘗試使用最大值max關聯,好像也是不對。

最後放棄group by,使用exists,豁然開朗

select

*from rg_rule_online_record e where

notexists

(select

1from rg_rule_online_record f where f.

`online_date`

>e.online_date and e.rid = f.rid)

;

至於不會使用exists的看一下這個【mysql】sql中exists,not exists的用

分組取最大值統計,過濾

匯率儲存,千分之5以內的,按照日期,幣種,匯率,匯率浮動分組。首先分組,按照日期,幣種,匯率,匯率浮動,然後分組統計 日期,幣種,匯率 1的並且,浮動範圍在千分5以內。如果有2條匯率,一條記錄大於千分之5,一條記錄小於千分之5,分組統計數目就大於1,就過濾掉。如果匯率正常的且有多條,然後取max 最...

如何取分組最大值記錄

分組最大值記錄 比如序號 名稱 數量 1 a 20 2 a 10 1 b 20 2 b 40 3 b 10 1 c 20 2 c 40 子查詢 select from 表 where 序號,名稱 in select max 序號 名稱 from 表 group by 名稱 分析函式 select 序...

如何取分組最大值記錄

分組最大值記錄 比如序號 名稱 數量 1 a 20 2 a 10 1 b 20 2 b 40 3 b 10 1 c 20 2 c 40 子查詢 select from 表 where 序號,名稱 in select max 序號 名稱 from 表 group by 名稱 分析函式 select 序...