Databáze > Firebird a Interbase

DISTINCT či GROUP BY

(1/3) > >>

Stanislav Hruška:
Mám dopyty s dvomi poľami: Integer a string
Vždy používam WHERE, takže vstupné údaje sa počítajú na stovky.
Takže momentálne nejde ani tak o výkon ako o čistý/správny kód.
.
Čo som čítal, tak sa DISTINCT veľmi neodporúča. S výnimkou, ak sú výstupy iba typu Integer. Aj to pár polí.
O GROUP BY neviem vôbec nič.
Nateraz som si zvolil GROUP BY.
.
Viete mi k tomu niečo povedať?

Jan Fiala:
Distinct vybere data a pak vrati unikatni vety
Group by slouzi pro souctovani (vypocty) nad daty. Da se znasilnit, pokud pouzijes neco jako:
Select max(pole) as pole from...
Co vlastne ma byt vysledkem tveho dotazu?
Z kolika vet vybiras?

Stanislav Hruška:
Každá veta má byť raz - bez opakovania. Ja som si myslel, že DISTINCT to vysvetľuje. Uvádzam príklad GROUP BY
--- Kód: ---  const Basic = 'SELECT P.COUNTRYFK, C.TITLE'+
  ' FROM TEAM_SEASON TS'+
    ' INNER JOIN PLAYER_TEAM ON PLAYER_TEAM.TEAMFK = TS.TEAMFK'+
    ' INNER JOIN PLAYERS P ON PLAYER_TEAM.PLAYERFK = P.PALYERID'+
    ' INNER JOIN COUNTRIES C ON P.COUNTRYFK = C.COUNTRYID'+
  ' WHERE TS.SEASONFK = :SEASONFK'+
  ' GROUP BY P.COUNTRYFK, C.TITLE';
--- Konec kódu ---
S DISTNICT bude takto
--- Kód: ---  const Basic = 'SELECT DISTINCT P.COUNTRYFK, C.TITLE'+
  ' FROM TEAM_SEASON TS'+
    ' INNER JOIN PLAYER_TEAM ON PLAYER_TEAM.TEAMFK = TS.TEAMFK'+
    ' INNER JOIN PLAYERS P ON PLAYER_TEAM.PLAYERFK = P.PALYERID'+
    ' INNER JOIN COUNTRIES C ON P.COUNTRYFK = C.COUNTRYID'+
  ' WHERE TS.SEASONFK = :SEASONFK';
--- Konec kódu ---
Ide o to, čo je správnejšie. Viď tretí riadok otázky.
--- Citace ---Z kolika vet vybiras?
--- Konce citace ---
Písal som že to sú rádovo stovky. Možno niekde nejaká tisícka - neviem.

pf1957:

--- Citace: Stanislav Hruška  25-07-2023, 17:26:56 ---Ide o to, čo je správnejšie.

--- Konce citace ---
GROUP BY se pouziva spolu s agregacnimi funkcemi a ty tam zadnou nemas -> to ti funguje spis dilem nahody a rekl bych, ze by te s tim slusny RDBMS vykopal...

Stanislav Hruška:

--- Citace: pf1957  26-07-2023, 07:00:58 ---
--- Citace: Stanislav Hruška  25-07-2023, 17:26:56 ---Ide o to, čo je správnejšie.

--- Konce citace ---
GROUP BY se pouziva spolu s agregacnimi funkcemi a ty tam zadnou nemas -> to ti funguje spis dilem nahody a rekl bych, ze by te s tim slusny RDBMS vykopal...

--- Konce citace ---
V podstate som myslel na niečo také. Funguje mi to všade  :)  Samozrejme, že nebudem riskovať. Ďakujem. Zmením to na DISTINCT.

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi