MySQL 分組後取最新值

2021-10-07 06:55:33 字數 663 閱讀 1721

1.需求:一張表中有多組資料,要求取出每組的最新一條的某些字段值。

例如,成績表中儲存了學校所有學生(一年級、二年級、三年級)所有學科(語文、數學、英語)的成績,要求取出某個學生的最近一次所有學科的成績。

2.實現:

select

學科,( select

成績from

成績表where

學科 = a.學科

and 年級 = a.年級

and 班級 = a.班級

and 學生名字 = a.學生名字

order by

date desc,

time desc

limit 1

) as 成績

from

成績表 a

where

年級 = '一年級'

and 班級 = '一班'

and 學生名字 = a.學生名字

group by

學科;

1)依據年級、班級、名字查詢出該學生的所有成績

2)依據學科進行分組

3)將分組後的學科值傳入子查詢中

4)子查詢依據學科、年級、班級、學生名字進行查詢,並按照日期、時間排序後取第一條資料

5)將子查詢結果取別名為成績

6)完成查詢 

mysql分組取最新 最大 的值

在專案開發中通常會遇到這樣的需求,主表的一條資料對應著從表的多條資料,而在資料展示時我們有時只需要最新的一條資料時,就需要對從表進行分組並取出最新的資料來關聯到主表.但是對於不同版本的mysql可能有一些bug需要我們來處理,如下 使用者表 idname1小明 2小紅 id uidcontent t...

mysql 分組取最大時間(分組取最新資料)

在查詢資料時,需要分組後取每組中的最新一條資料 即時間最大的那條 示例如下 複製如下 sql 語句建表,新增資料 set foreign key checks 0 table structure for t company drop table ifexists t company create t...

Mysql取分組後前N個值

表結構如下 create table test group limit row id varchar 33 id int 11 num bigint 11 log varchar 33 insert into test group limit row id id num log values 1 1...