MySQL - 是否有可能使用SQL实现这一目标?

qua*_*ano 1 mysql sql

想象一下,你有一个包含2列的表:ID和NAME.ID只是一个数字,每行递增(正如您所期望的那样).NAME是一些随机varchar字符串.对于不同的行,NAME可以相同.现在,想象一下你想在这个表中得到3个最新的出现,其中NAME只出现一次.

例如,如果您有这些数据:

ID  NAME
1   HELLO
2   TEST
3   HELLO
4   HELLO
5   QWERTY
6   HELLO
Run Code Online (Sandbox Code Playgroud)

然后问题的结果应该是:

6   HELLO
5   QWERTY
2   TEST
Run Code Online (Sandbox Code Playgroud)

是否有可能在SQL级别上实现这一点?

Mac*_*bey 5

SELECT 
   MAX(ID), 
   Name
FROM 
   table
GROUP BY 
   Name
ORDER BY
   MAX(ID) desc
LIMIT 3
Run Code Online (Sandbox Code Playgroud)