按key asc
排序的Mysql表:
id | key | value | OCCURENCE_COUNTER
--------------------------------------------------------
1 a ... 1
2 a ... 2
3 a ... 3
4 b ... 1
5 b ... 2
6 b ... 3
7 c ... 1
8 c ... 2
9 c ... 3
表中不存在列OCCURENCE_COUNTER
。
我想创建查询,它可以告诉我每行OCCURENCE_COUNTER
的价值:
// pseudo-code:
foreach(row) {
if(isFirstOccurenceOfKey(current_key)) {
current_OCCURENCE_COUNTER = 1;
} else {
current_OCCURENCE_COUNTER = previous_OCCURENCE_COUNTER + 1;
}
}
我不希望OCCURENCE_CONTER
分组key
。我只是想要解开反击。
这可以在一个查询中(或使用一些子查询)吗?
答案 0 :(得分:0)
我希望,我理解你的问题。 occurence_conter
是您在问题中定义的表格。
select c.*,
( select count(*)
from occurence_conter c1
where c1.key = c.key
and c1.id <= c.id ) as OccurenceCounter
from occurence_conter c;