sqlite: как добавить счетчик к существующей таблице

Вопрос: Это конкретный вопрос sqlite. У меня есть таблица x0 и вы хотите добавить счетчик: ALTER TABLE x0 ADD counter INTEGER; UPDATE x0 SET counter = ? С? что-то вроде: @counter: = @counter +1. Есть идеи? Изменить 1: Я нашел простое решение, но не очень гибкое: UPDATE x0 SET counter = ROWID; Но это не

Вопрос:

Это конкретный вопрос sqlite. У меня есть таблица x0 и вы хотите добавить счетчик:

ALTER TABLE x0 ADD counter INTEGER; UPDATE x0 SET counter = ?

С? что-то вроде: @counter: = @counter +1.

Есть идеи?

Изменить 1:
Я нашел простое решение, но не очень гибкое:

UPDATE x0 SET counter = ROWID;

Но это не очень гибко. Например, если я хочу рассчитывать внутри групп, как в этом примере, с MySQL: count внутри групп.

Лучший ответ:

В большинстве таблиц уже есть уникальный идентификатор в форме rowid, поэтому вы можете просто заменить его ? с rowid.

Если вы хотите иметь последовательные значения или перезапускать подсчет в некоторой группе, вам нужно вручную подсчитать, сколько других строк перед каждой строкой:

UPDATE x0 SET counter = (SELECT COUNT(*) FROM x0 AS x02 WHERE x02.rowid <= x0.rowid — AND x02.group_value = x0.group_value );

Оцените статью
Добавить комментарий