[英]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 BY
, ORDER BY
和LIMIT
但没有得到我想要的结果。 如何在一个列中为每个值收集一条记录,并确保它是具有最高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.