2012-11-05 77 views
4

我有一个名为x的表,该表具有id列和重复状态列。该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; 

回答

3

,你也可以通过尝试组这样的查询

SELECT xid, repeat_status FROM x 

GROUP BY xid,repeat_status 

帖子:What is difference between DISTINCT and GROUP BY?

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

但这是SQL服务器没有想法回合MySQL的

+0

这是一个比我的一个巨大的数据集>? –

+0

感谢您的编辑,我将调查ASM级别发生的事情,以便sortnig –

+0

!很高兴知道! –

3
select distinct xid, repeat_status 
from x 
order by xid, repeat_status 
+0

我已经尝试了上面,但没有奏效,值1,2所能10.他们每XID – Alphy

+0

我”变化已经编辑,再次检查 –