Mysql 基于特定值对数据进行分组
我有一个名为x的表,该表有id列和repeat status列。id可以存储相同的值,即使是其中的6个,而重复状态在每次插入id时都会增加1,2…n。如果插入新的不同id,则重复状态从1开始,例如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
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