繁体   English   中英

每个唯一列值获取一条记录

[英]Get one record per unique column value

我有一张表列出了系统许可证,每个系统有多个许可证(过期的许可证和现有的许可证)。 我在此问题中仅发布了两列,因为它们是唯一重要的列。

| id | systemid | 
|  1 |        1 |
|  2 |        1 |
|  3 |        2 |
|  4 |        2 |
|  5 |        3 |
|  6 |        3 |

我需要获取ID为2、4和6的行。

我需要为每个systemid收集1条记录,并且它必须是最早(最年轻)的记录,因此在这种情况下,它是ID最高的记录。 我一直在探索GROUP BYORDER BYLIMIT但没有得到我想要的结果。 如何在一个列中为每个值收集一条记录,并确保它是具有最高ID的记录?

我知道这是错误的,但这是我目前主演的内容:

SELECT * FROM licences GROUP BY systemid ORDER BY id DESC LIMIT 1

这将获取每个systemid的最高id。

SELECT MAX(id), systemid
FROM ...
GROUP BY systemid

SELECT max(id), systemid FROM table GROUP BY systemid

请注意,使用GROUP BY ,您选择的所有列都必须在GROUP BY子句中或包装在汇总函数中,例如max,min,sum或average。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM