Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Numerownie wyników zapytania
Baumi
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2008

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


Witam, Przejdę może od razu do rzeczy. Potrzebuję ponumerować wyniki zapytania jeszcze na etapie jego wykonywania. Chodzi mi dokładnie o coś takiego, że jak wykonam select'a na tabeli otrzymam w wyniku kolejne numery od jeden i wartość, np:

1 10.56
2 14.00
3 18.34
itd...

Szukałem sposobu na to, ale nie znalazlem... Myslalem jeszcze nad uzyciem zmiennej, ktora po prostu bede inkrementowal, ale to rowniez mi nie wypalilo... Ma ktos jakies pomysly?

Pewnie zapytacie takze do czego jest mi to potrzebne... otoz mam serie wartosci, ktore chce przedstawic na grafie... tyle, ze wartosci jest multum (+- 10.000), tak wiec aby szybko stworzyc graf postanowilem wyswietlac jedynie 288 wartosci... moglbym pobrac wszystkie z bazy i na pozimie aplikacji zagregowac je, jednak wolalbym zrobic to na poziomie zapytania. Problem jest taki, ze chce zaagregowac powiedzmy 50 wartosci, pozniej kolejne 50 i tak dalej... Postanowilem zrobic to w ten sposob, ze uzyje funkcji modulo... Niech numer kolejnego wyniku nazywa sie _NUM, wiec jesli pogrupuje tak:

group by (_NUM - _NUM % 288) dostane dokladnie to o co mi chodzi... nie wiem tylko jak ponumerowac te wyniki...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Czy dobrze rozumiem, chcesz grupować krotki po 50 i potem wszystkie grupy aby stanowiły wynik?
(właśnie od opisu problemu powinieneś zacząć, nie opisu jak próbujesz rozwiązać, bo czasem podchodzimy nie od tej strony co trzeba, każdemu się może zdarzyć)
Go to the top of the page
+Quote Post
Baumi
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2008

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


Dzięki za zainteresowanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chce pogrupować krotki po 50 i owe grupy mają być wynikiem zapytania. Zakładając, że chce grupować po 50 to przy 1000 rekordów otrzymam 20 wierszy wynikowych. Wisz może jak to zrobić?
Go to the top of the page
+Quote Post
michalg
post
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

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


Witam,

Nie wiem, czy po takim czasie przyda się to autorowi pytania, ale jeśli kogoś to interesuje, to w postgresqlu można osiągnąć numerowania wyników za pomocą sekwencji:

CREATE TEMP SEQUENCE "lp" START 1;
SELECT nextval('lp'), * FROM tabela;

SELECT setval('lp', 1, false);

SELECT nextval('lp'), * FROM tabela2;

TEMP oznacza sekwencję tymczasową - trwa ona na czas połączenia z bazą danych. W przypadku, gdy zachodzi potrzeba wykonania kilku zapytań z numerowaniem w ramach danego połączenia, to trzeba przed każdym resetować sekwencję (setval) lub usuwać i tworzyć na nowo.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 16:16