Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql zapytanie zwracajace % rekordow.
#sigsegv
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Witam!

Mam taka tablice:

id int
ilosc int

z rekordami:
1;1
2;2
3;4
4;3
5;6
6;2

Chcialbym napisac zapytania ktore zwroci mi w kolejnosci od najwiekszej ilosc do najmniejszej rekordy ktore stanowia 60% sumy ilosci wszystkich rekordow (ale zakrecilem)
czyli

wszystkie rekordy razem daja mi ilosc 18.
60% z 18 daje 10,8
czyli wynik powinien zwracac rekordy az suma ilosci w tych rekordach nie przekorczy 10,8 w kolejnosci od najwiekszej ilosci do najmniejszej:
5;6
3;4
Powiedzmy ze tworzac zapytanie znam wynik sumy tego zapytania w calosci czyli 18.
Ma ktos moze jakis pomysl jak stworzyc takie zapytanie?
Zrobienie tego na poziomie php jest bardzo latwe, ale jezeli rekordow sa miliony to lepiej chyba zaprzegnac do tego baze i wyselekcjinowac rekordy juz na jej poziomie.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Może to?


[sql:1:bdccc3d5e7]SELECT COUNT(*) AS ile FROM tabela[/sql:1:bdccc3d5e7]
Weź to przypisz do jakiejś zmiennej (tutaj $ile) i wstaw do następnego zapytania:
[sql:1:bdccc3d5e7]SELECT @ile:=SUM(ilosc), @maxproc:=((".$ile."/@ilosc)*166), @proc:=((ilosc/@ilosc)*100), pole1, pole2, pole3 FROM tabela WHERE @proc<@maxproc ORDER BY ilosc[/sql:1:bdccc3d5e7]
:?:
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 08:12