我使用sqllite,我有一个表格,如下例所示:
ID state
1 init
2 run
3 stop
4 run
5 init
6 stop
7 run
我想添加一个列来计算" run"的出现次数。仅在" init"遇到状态,例如:
ID state session
1 init 0
2 run 1 <---first occurence
3 stop 1
4 run 1
5 init 1
6 stop 1
7 run 2 <---second occurrence
有办法吗? 谢谢
答案 0 :(得分:0)
由于我使用QT管理SQL数据库,我以这种方式解决了
QSqlQuery query;
bool initFlag = false;
int countSession = 0;
if (query.exex("SELECT id, state FROM table"))
{
while (query.next())
{
if (query.value(1).toString() == "init")
initFlag = true;
if (initFlag && query.value(1).toString() == "run")
{
countSession++;
initFlag = false;
}
QSqlQuery update;
update.exec("UPDATE table SET session = "+QString::number(countSession)+" WHERE id = "+query.value(0).toInt());
}
}