Mysql 基于特定值对数据进行分组

Mysql 基于特定值对数据进行分组,mysql,sql,tsql,group-by,Mysql,Sql,Tsql,Group By,我有一个名为x的表,该表有id列和repeat status列。id可以存储相同的值,即使是其中的6个,而重复状态在每次插入id时都会增加1,2…n。如果插入新的不同id,则重复状态从1开始,例如 xid repeat_status xx123 1 xx123 1 xx123 2 xx123 3 xx123 3 xxx45 1 xxx45 2

我有一个名为x的表,该表有id列和repeat status列。id可以存储相同的值,即使是其中的6个,而重复状态在每次插入id时都会增加1,2…n。如果插入新的不同id,则重复状态从1开始,例如

 xid       repeat_status
xx123           1
xx123           1
xx123           2
xx123           3
xx123           3 
xxx45           1
xxx45           2
xxx45           2
如何修改下面的查询以返回如下内容:

 xid           repeat_status
xx123             1
xx123             2
xx123             3

xxx45             1
xxx45             2

SELECT xid
      ,repeat_status 
FROM x 
GROUP BY repeat_status;

您也可以像这样尝试按查询分组

SELECT xid, repeat_status FROM x 

GROUP BY xid,repeat_status
职位:

DISTINCT和GROUP BY通常生成相同的查询计划,因此两个查询构造的性能应该相同。


但是这是为sql server准备的,我不知道mysql

在一个巨大的数据集上,这比我的更快吗>?我将调查在ASM级别上发生了什么,感谢您的编辑!很高兴知道@在sql server中,我在回答中编辑的内容没有任何区别。@Alphy-欢迎…………我尝试了上述方法,但没有奏效,值1、2可以是10。它们因我所编辑的内容而异,请再次检查
SELECT xid, repeat_status FROM x 

GROUP BY xid,repeat_status