表结构如下:
CREATE TABLE TABLE_NAME(
ID NUMBER NOT NULL,
NAME VARCHAR(100),
TIME DATE,
STATE VARCHAR(100)
)
需求:查找所有用户最新的一条数据
一开始我想到是用group by分组,但是遇到了这样的报错:
百度了发现group by之后的字段得和select的字段相同,如下图:
但是这样我只能查到所有的用户名字,查不到别的信息,再次求助百度后,用下面的语句实现了我想要的查询
SELECT * FROM TABLE_NAME TEMP WHERE NOT EXISTS(SELECT * FROM TABLE_NAME WHERE NAME=TEMP.NAME AND TEMP.TIME>TIME)