

Funkcia - MS SQL
Dobrý deň,
Vedeli by ste mi poradit aku funckiu ( respektive syntax prikazov ) ktoru mam pouzit, ak potrebujem vypocitat urcitu cast v percentach.
Mam databzu v nej 200 ludi, a pri vybere napr. podla vzdelania mi zobrazi 35 ludi ( ktori splnaju danu podmienku ) z tych 200, toto mam hotove a este potrebujem aby mi vypocitalo kolko je to percent ( 35 z 200 ).
Kto by vedel poradit ??
Dakujem
A opravdu si nedelas srandu?
Polopatě:
200 = 100%
35 = x%
Zkus to normálně trojčlenkou spočítat a ten samý vzoreček použij v dotazu.
Vedel by si mi to prosimta upravit ?
SELECT Meno,Priezvisko,Email,
FROM schema.Clovek
WHERE (Meno)='Jozef'
GROUP BY Priezvisko,Meno,Email
Proste aby zistilo percentualne kolko zo vsetkych ma meno Jozef
Takto ti to fungovat nebude. Nemuzes groupovat podle prijmeni a mailu a chtit jmeno.
Proc grupujes? To tam mas vic lidi, kteri maji stejne prijmeni a mail?
Navic bude vysledkem treba 20 radku a u kazdeho bude 23%? To je nesmysl.
Vypis Jozefu:
Procentualni zastoupeni Jozefu:
No neviem preco, ale to Procentualni zastoupeni mi neide:
SELECT Meno Count(*) / (Select count(*) from schema.Clovek) * 100
FROM Schema.Clovek
WHERE Meno='Jozef'
Error:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '*'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '*'.
Kde moze byt problem ?
Chybějící závorka.
Chybějící čárka za Meno, ale to už je jen detail
Tu jednu závorku navíc už si opravil.
dopisal som tu ciarku za Meno, A teraz je iny problem:
Error:
Msg 8120, Level 16, State 1, Line 2
Column 'schema.Clovek.Meno' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Trošku jsem ti to upravil:
Group by tam v tomto případě být musí, pokud by tam Meno nebylo uvedene v Select, pak group by byt nemusi
Nasobeni 100.0 je tam z duvodu toho, aby z toho MS SQL udelal cislo z desetinnou carkou. Jinak by to vzal jako cele cislo a nevychazelo by ti to presne
Dakujem, uz to funguje :)
Ale vies mi este poradit ako upravit to Percento ? Lebo mi vypise: 1.953125000000
Aby to vypisovalo iba na 2 desatinne miesta ?? :)
skvele :) A posledna vec, dalo by si este aby vo vypise za vypocitam cislom napisalo este % ? Skusal som to davat do uvodzoviek, vkladat na rozne miesta ale neberie.
Dufam ze sa chapeme, teraz vypise napr: 5,67 a chcel by som aby vypisali: 5,67 %
Procento=Cast(cast(Count(*) * 100.0 / (Select count(*) from schema.Clovek) as decimal(18,2)) as varchar) + ' %'
Skvele, velmi pekne dakujem :)
Este keby som v buducnosti mal nejaky problem s MSSQL viem na koho sa mozem obratit :)