Anzahl der Datensätze bei UPDATE aktualisieren

CreativPur

Erfahrenes Mitglied
Hi,
ich habe folgendes Problem...

Ich habe eine SQL-Datenbank mit 10 Datensätzen.
In der Spalte ANZAHL wird automatisch bei jedem Eintrag per INSERT die Anzahl um eins (+1) höher gezählt.
Soweit alles ok...
Z.B.
Id. Anzahl. Name
1 1 Otto
2 2 Berta
3 3 Petra
4 4 Olaf
5 5 Markus
.
.
.
.
WICHTIG ist es für mich, das die Spalte ANZAHL immer fortlaufend ist.
Wenn ich allerdings einen Datensatz lösche, ist die Nummerierung in der Spalte Anzahl natürlich unterbrochen und somit nicht mehr fortlaufend.

Z.B.
Id. Anzahl. Name
1 1 Otto
2 2 Berta
4 4 Olaf
5 5 Markus

Wie kann ich durch ein UPDATE die spalte Anzahl wieder fortlaufend aktualisieren ?
 

Yaslaw

n/a
Moderator
SQL:
UPDATE my_table AS t1
SET t1.anzahl = (
  SELECT COUNT(*)
  FROM my_table AS t2
  WHERE t2.id <= t1.id
);
 

Zvoni

Erfahrenes Mitglied
Gott sei Dank war ich nicht der einzige mit dem Gedanken......

Mir wäre kein Anwendungsfall bekannt, bei welchem ich sowas "hartcodiert" in einer Basis-Tabelle bräuchte....

Ganz zu schweigen davon: Sortieren wir doch mal die Ausgabe nach "Name".......
 

CreativPur

Erfahrenes Mitglied
Die Tabelle war nur ein Beispiel.
Ich benötige die lückenlose Zahlenfolge für einen Slider mit Referenzen.
Wenn Sie unterbrochen wird, spinnt der Slider.
 

Zvoni

Erfahrenes Mitglied
???????
wieso dann nicht als Bestandteil einer Abfrage/View?

EDIT: In SQLite getestet
SQL:
SELECT
Name,
ROW_NUMBER() OVER(ORDER BY Name) AS RN
From person ORDER BY Name
 
Zuletzt bearbeitet: