Chcete-li načíst řádky na základě procenta počtu řádků v každé skupině, můžete použít dvě funkce okna:jednu pro počítání řádků a druhou pro přidělení jedinečného čísla.
select gp,
val
from (
select gp,
val,
count(*) over (partition by gp) as cnt,
row_number() over (partition by gp order by val desc) as rn
from temp
) t
where rn / cnt <= 0.75;
Příklad SQLFiddle:http://sqlfiddle.com/#!15/94fdd/1
Btw:pomocí char
je téměř vždy špatný nápad, protože jde o datový typ s pevnou délkou, který je doplněn na definovanou délku. Doufám, že jste to udělali pouze pro nastavení příkladu a nepoužili jste jej ve své skutečné tabulce.