ROW ID vergeben

Kirby.exe

Top Contributor
Also ich möchte einem Table, welcher aus einem Select ensteht gerne jeder Zeile eine ID zuweisen diese sollen dann so aussehen:
Bildschirmfoto 2021-01-23 um 13.01.51.png

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:

SQL:
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:
SQL:
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

Bildschirmfoto 2021-01-23 um 13.11.21.png
 

mihe7

Top Contributor
Evtl. so?
SQL:
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 :)
 

Thallius

Top Contributor
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
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben