![](/img/trans.png)
[英]How to eliminate only continuous duplicates but not all duplicates in a select query (MySQL)?
[英]How to eliminate duplicates from select query?
在提出这个问题之前,我使用Google进行了搜索,但我无法理解或者找不到适合我情况的解决方案。
所以,我有一个包含10列的表,我想从选择结果中消除重复。 并且在结果中应该呈现具有唯一用户ID的所有列
+-----------------------------------+------+---------------------+------+ | name | yr | some Columns |userID| +-----------------------------------+------+---------------------+------+ | abc | 2000 | | 10 | | jack | 2000 | | 11 | | dadas | 2000 | | 12 | | jack | 2004 | ............. | 11 | | jack | 2000 | ........... | 11 | | nell | 2006 | ............. | 13 | | ...... | 2000 | ............. | 1 | | ............. | 2000 | ............. | 2 | | again | 2000 | ............. | 3 | | again | 2000 | | 3 | | ....... | 1973 | ............. | 2 | | abc | 2000 | | 10 |
如果您不需要保留不同的年份,请使用DISTINCT ON(FIELD_NAME)
SELECT DISTINCT ON (userID) userdID, name, yr FROM TABLE_NAME
试试这个:
SELECT * FROM TABLE_NAME GROUP BY userID
一个简单的方法是:
SELECT DISTINCT (userID) userdID, name, yr FROM TABLE_NAME
对于PostgreSQL以及SQL Server 2005 +,DB2和更高版本的Oracle(9+),您可以使用窗口函数ROW_NUMBER()
select *
from
(
select *, ROW_NUMBER() over (partition by userID order by yr desc) rown
) X
where rown = 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.