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

2021-10-10 22:05:15 字數 2932 閱讀 3034

在查詢資料時,需要分組後取每組中的最新一條資料(即時間最大的那條),示例如下

複製如下 sql 語句建表,新增資料

set foreign_key_checks=0;

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

-- table structure for t_company

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

drop

table

ifexists

`t_company`

;create

table

`t_company`

(`id`

int(11)

notnull

auto_increment

,`company_name`

varchar(40

)default

null,`

type

`int

(255

)default

null

,`create_date`

datetime

default

null

onupdate

current_timestamp

,primary

key(

`id`))

engine

=innodb

auto_increment=12

default

charset

=utf8;

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

-- records of t_company

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

insert

into

`t_company`

values

('1',,

'1',

'2019-01-08 15:44:55');

insert

into

`t_company`

values

('2'

,'阿里巴巴'

,'1'

,'2019-01-09 15:47:08');

insert

into

`t_company`

values

('3',,

'1',

'2019-01-10 15:47:14');

insert

into

`t_company`

values

('4'

,'小公尺'

,'0'

,'2019-01-11 15:47:19');

insert

into

`t_company`

values

('5'

,'華為'

,'0'

,'2019-01-17 15:47:23');

insert

into

`t_company`

values

('6'

,'農業銀行'

,'2'

,'2019-01-29 15:47:29');

insert

into

`t_company`

values

('7'

,'工商銀行'

,'2'

,'2019-01-24 15:47:32');

insert

into

`t_company`

values

('8'

,'興業銀行'

,'2'

,'2019-08-21 17:48:38');

insert

into

`t_company`

values

('9'

,'浦發銀行'

,'2'

,'2019-08-21 17:48:38');

insert

into

`t_company`

values

('10'

,'貴州茅台'

,'0'

,'2019-08-21 17:48:38');

insert

into

`t_company`

values

('11'

,'民生銀行'

,'2'

,'2019-01-10 15:47:14'

);

建表如下

查詢思路: 先分組使用 max() 函式查詢出每組中最大的時間和型別,將時間欄位和型別字段定義為乙個新錶 tmp,再通過與 tmp 表的時間和型別聯合查詢,即可查詢出每組中的最新一條資料(時間最大的那條資料)。之所以要使用時間和型別兩個字段,是因為可能存在不同型別但時間相同的資料

sql 語句如下

mysql分組取最新 最大 的值

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

MySQL 分組排序取top

hive中可以使用row number how about in mysql?1.學生表 student s,sname,sage,s s 學生編號,sname 學生姓名,sage 出生年月,s 學生性別 2.課程表 course c,cname,t c 課程編號,cname 課程名稱,t 教師編號...

MySQL 分組後取前幾條

利用group concat和substring index實現,能很好的利用索引,適合大資料。select from yourtable where id in select substring index group concat id order by column 2 desc 1 id f...