在查詢資料時,需要分組後取每組中的最新一條資料(即時間最大的那條),示例如下
複製如下 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...