SQL:仅选择表中具有相同值的一行

Z3r*_*yte 6 sql database filtering

我对 sql 有点陌生,对于我的项目,我需要做一些数据库排序和过滤:

假设我的数据库如下所示:

==========================================
|  id       |       email        | name
==========================================
|   1       |  123@test.com      | John
|   2       |  234@test.com      | Peter
|   3       |  234@test.com      | Steward
|   4       |  123@test.com      | Ethan
|   5       |  542@test.com      | Bob
|   6       |  123@test.com      | Patrick
==========================================
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能只返回具有相同电子邮件地址的最后一列:

==========================================
|  id       |       email        | name
==========================================
|   3       |  234@test.com      | Steward
|   5       |  542@test.com      | Bob
|   6       |  123@test.com      | Patrick
==========================================
Run Code Online (Sandbox Code Playgroud)

提前致谢!

小智 6

SQL查询:

    SELECT * FROM test.test1  WHERE id IN (
  SELECT MAX(id) FROM test.test1 GROUP BY email
);
Run Code Online (Sandbox Code Playgroud)

您的样本数据集 查询结果

希望这能解决您的问题。谢谢。


I_S*_*rov 6

这是一个更清晰的方法:

SELECT *
FROM table
ORDER BY email DESC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)