SQL 分組後獲取時間為最新的記錄

2021-10-04 18:19:21 字數 1326 閱讀 6942

1.建立一張test表,表結構如下

create

table test (

id int(11

)not

null

, name varchar

(255

)not

null

,type

varchar

(255

)not

null

, create_time timestamp

,primary

key(id)

);

2.插入幾條測試資料

insert

into test values(1

,'t恤衫'

,'衣服'

,'2020-04-04 20:34:50');

insert

into test values(2

,'菜刀'

,'廚房用具'

,'2020-04-04 20:33:40');

insert

into test values(3

,'圖書釘'

,'辦公用品'

,'2020-04-04 19:32:50');

insert

into test values(4

,'運動t恤'

,'衣服'

,'2020-04-04 17:32:43');

insert

into test values(5

,'擦菜板'

,'廚房用具'

,'2020-04-04 20:32:22');

insert

into test values(6

,'筆'

,'辦公用品'

,'2020-04-04 21:34:56'

);

3.先將資料進行group by分組,再進行內聯結查詢

select

t1.*from

test as t1

inner

join

(select

type

,max

(create_time)

as max_create_time

from

test

group

bytype

)as t2 on t1.

type

= t2.

type

and t1.create_time = t2.max_create_time;

SQL 按照最新時間分組

表名 bp acctcurbalance 表說明 當日餘額表 欄位名型別 是否可空 描述索引 idbigintn主鍵 accountid bigint n賬戶id currencycode varchar 50 n幣種 balance decimal 22,2 n餘額 truebalancedate...

sql 分組後重複資料取時間最新的一條記錄

max id 注意id必須使用聚合函式max pid,max time as desc 降序是為了where keyid 1 1是固定值第一條 如果公升序由於不知道每組多少條where中keyid就無法過濾了 as keyid,drop table if exists tmptable 存在表則刪除...

分組取最新記錄的SQL

經常遇到這樣的情況,要取得所有客戶的最新交易記錄,讀取 所有瀏覽者最後一次訪問時間。乙個客戶只讀取最新的一次記錄,相同,大部分的人首先想 到的就是排除所有記錄,相同的只取一條。用distint,但是distint只能取到乙個欄位的值。所以使用distint就不能讀取 出所有的情況。下面是一條正確的語...