I Tabelle unten habenCount Anzahl der aufeinanderfolgende Vorkommen von Werten in der Tabelle
create table #t (Id int, Name char)
insert into #t values
(1, 'A'),
(2, 'A'),
(3, 'B'),
(4, 'B'),
(5, 'B'),
(6, 'B'),
(7, 'C'),
(8, 'B'),
(9, 'B')
I aufeinanderfolgende Werte in Spalte name
+------+------------+
| Name | Repetition |
+------+------------+
| A | 2 |
| B | 4 |
| C | 1 |
| B | 2 |
+------+------------+
Das Beste, was ich versuchte zählen will, ist:
select Name
, COUNT(*) over (partition by Name order by Id) AS Repetition
from #t
order by Id
aber es gibt mir nicht erwartetes Ergebnis
Wenn 'order by max (id)' hinzugefügt wurde, würde das Ergebnis genau wie in der OP-Post (in der Reihenfolge der Datensätze) aussehen. –
@KingKing, danke für deinen Hinweis. Ja, es macht genau das, was ich brauche. – FLICKER
Warum meine Abfrage gibt mir nicht das Ergebnis, ich erwarte, wenn ich nach Name partitionieren, die Anzahl (*) sollte zurückgesetzt werden, wenn die Werte von Name ändert. Ich schätze es, wenn Sie das erklären. Danke noch einmal. – FLICKER