# ROW ID vergeben



## Kirby.exe (23. Jan 2021)

Also ich möchte einem Table, welcher aus einem Select ensteht gerne jeder Zeile eine ID zuweisen diese sollen dann so aussehen:


Die letzte Zeile ist nicht zwangsläufig erforderlich (gibt aber dafür Bonuspunkte)

Ich hatte das mit ROW_Number() gemacht, aber das hatten wir noch nicht in der Vorlesung und deswegen sollen wir es mit der Funktion count() machen xD Nur sehe ich nicht wie ich das machen soll xD Man kann ja nicht so wirklich durch iterieren wie z.B. in Java über ein Array oder eine Liste. Ich hätte jetzt an einen Selbstverbund gedacht und dann irgendwie so:


```
Select count(*), t2.deptno, t2.ename
From employee emp1, employee emp2
Where emp1.deptno <= emp2.detpno
        and emp1.ename <= emp2.ename
Group By emp2.deptno, emp2.ename
```

Table soll hier das obene stehende Query ohne die Row ID's sein dieses hole ich mir wie folgt:

```
With employee as   (Select e1.deptno , e1.ename
                    From emp e1, dept d1
                    Where e1.deptno = d1.deptno
                    Order By e1.deptno ASC, e1.ename ASC)
```

Nur bekomme ich sehr weirde ausgaben xD


----------



## mihe7 (23. Jan 2021)

Evtl. so?

```
SELECT sum(anzahl) over (order by deptno, ename) 
  FROM (SELECT 1 as anzahl, deptno, ename FROM employee) e;
```
Du kannst natürlich statt der 1 noch count(*) verwenden, dann hast Du die Funktion auch noch drin


----------



## Kirby.exe (23. Jan 2021)

Oh an sum() habe ich gar nicht gedacht xD Danke  Ist genau das was ich haben möchte


----------



## Thallius (23. Jan 2021)

Kann das sein das du die ganz Aufgabe falsch verstanden hast? Eigentlich sollte jede Tabelle eine spalte 

id INT AUTO INCREMENT

haben. Vielleicht solltet ihr die nur hinzufügen im Tabellendesign?

Gruß

Claus


----------



## Kirby.exe (23. Jan 2021)

Thallius hat gesagt.:


> Kann das sein das du die ganz Aufgabe falsch verstanden hast? Eigentlich sollte jede Tabelle eine spalte
> 
> id INT AUTO INCREMENT
> 
> ...


Ist nicht möglich, da es eine Uni DB ist und wir keine Rechte haben irgendwas zu ändern xD


----------

