ugrás a tartalomhoz

Összegzés

misike · 2020. Ápr. 23. (Cs), 18.02
Üdv!

Nem találtam megoldást, itt kérek segítséget.
Egyszerűsítve írom le.

Egy tábla szerkezete:
user felnev mego
név1 aaaa +
név1 aaaa +
név1 aaaa -
név1 bbbbb -
nev2 aaaa +
nev2 aaaa +
nev2 bbbbb +
név3 aaaa -

A lekérdezésben vannak már összegzések (részlet)
SELECT
user,
sum(mego = '-') as rossz,
sum(mego = '+') as jo,
felnev
group by user, felnev

Abban kérnék segítséget hogyan számoljam meg hány fajta felnev van felhasználónként.
pl. a név1 nek 2 fajta. (aaaa és a bbbbb)

Segítséget előre köszönöm.
 
1

Ilyesmire

kuka · 2020. Ápr. 24. (P), 14.18
Ilyesmire gondoltál?

select
user,
sum(mego = '-') as rossz,
sum(mego = '+') as jo,
count(distinct felnev) as felnev_szam,
group_concat(distinct felnev) as felnev_lista

from misike

group by user;
Nem említetted milyen adatbázist használsz. group_concat() a MySQL/MariaDB és SQLite sajátosságai, PostgreSQL és SQL Server esetében string_agg() kell helyette.
2

Köszönet

misike · 2020. Ápr. 24. (P), 19.53
Köszi.

Remélem minden ok.
3

mégsem

misike · 2020. Ápr. 25. (Szo), 11.39
Sajnos nem lett jó. Talán nem voltam egyértelmű, A fajta darabszámát kellene megkapnom.
Megmutatom hogyan íratnám ki az eredményeket.
név feladatnév jó össz rossz össz telj%
aaaaa 2 1
név1 50%
bbbbbb 0 1

És így a többit.

Az összeg azért kellene mert a táblázatban a név oszlopot és a telj oszlopot rowspannal állítanám be.

Értem hogyan megy végig az sql az adatbázison, de hátha van erre is megoldás.

Az adatbázis mysql.