Ostatnio troszkę to forum odzyło, i zaczęły pojawiać się ciekawsze zapytania, co skłoniło mnie do coraz to nowych poszukiwań.
Jednak, jak już nie raz, nie poradzę sobie chyba bez Was.
Chciałbym zadać zapytanie, które pozwoli za jednym razem wyciągnąc po np. 5 wierszy z danej kategorii z wszystkich dostępnych kategorii.
Czy można to zrobić przy pomocy 1 zapytania, bez subqueries?
Bakus
5.01.2004, 01:48:34
Cytat
Chciałbym zadać zapytanie, które pozwoli za jednym razem wyciągnąc po np. 5 wierszy z danej kategorii z wszystkich dostępnych kategorii.
A troszeczkę bardziej po ludzku? Nie zabardzo rozumiem o co Ci chodzi...
Ok.
Chciałbym pobrać po kilka przedstawicieli, powiedzmy owoców, z kazdej dostępnej kategorii.
Oznacza to, że jeśli mielibyśmy powiedzmy:
10 jabłek, 15 gruszek i 20 wiśni i 1 melon
ja w wyniku chciałbym mieć:
5 jabłek, 5 gruszek, 5 wiśni i 1 melon,
na zasadzie:
1 jabłko
2 jabłko
3 jabłko
4 jabłko
5 jabłko
1 gruszka
2 gruszka
. . .
Bakus
5.01.2004, 05:03:06
Teraz rozumiem...
Aczkolwiek z racji mojej w bliżej nie określonej wiedzy dot. SQLa ja wykonałbym to kilkoma zapytaniami - po jednym do każdej kategorii... w takim przypadku wystarczy LIMIT...
Jabol
5.01.2004, 06:23:40
a union? tylko, że musiałbyś znać wszystkie kategorie :/ ...
a masz może te wszystkie rzeczy oddzielnie ponumerowane? bo wtedy to prościutko.
btw. @DeyV: a może byś tak strukture jakąś zapodał, czy to pytanie czysto teoretyczne?
ps. oczywiście chyba, że się zgodzisz na plpgsql, wtedy ładna prosta funkcja, która zwraca kursor. Ale jak subqueries nie to o czym ja marze...
uboottd
5.01.2004, 10:38:08
E tam, subzapytania, plpgsqle, grzyby, w d** sie poprzewracalo, a tak naprawde to dosc proste zadanie:
SELECT * FROM owo GROUP BY a%5,b ORDER BY b,a;
gdzie a to kolejne id owocu, a b nazwa owocu.
jesli nie ma id (musi byc unikalne wylacznie w obrebie jednego owocu, jak jest w ogole unikalne to nic nie zmienia), jak nie ma id to mozna uzyc ukrytego numeru wiersza.
uboottd - jak zwykle jesteś nie do pobicia.
Co jednak masz na myśli mówiąc:
Cytat
jak nie ma id to mozna uzyc ukrytego numeru wiersza.
uboottd
5.01.2004, 12:04:53
Zwykle oprocz jawnie zdefiniowanych kolumn DBMS dodaje kilka wlasnych, majacych specjalne znaczenie. Jedna z nich jest zazwyczaj wewnetrzny numer wiersza. MySQL ma to pod nazwa _rowid, ale nie wystepuje to we wszystkich tabelach, warunkiem jest posiadanie klucza typu int na jedna kolumne. PGSQL ma podobny numer pod nazwa oid.
spenalzo
5.01.2004, 20:26:42
Cytat
Ostatnio troszkę to forum odzyło, i zaczęły pojawiać się ciekawsze zapytania, co skłoniło mnie do coraz to nowych poszukiwań.
Jednak, jak już nie raz, nie poradzę sobie chyba bez Was.
WIECEJ
Jestem żądny jakiś trudnych przykładów.
Niestety przez ostatnie dwa tygodnie bylem na modemie

więc jak wchodziłem na forum to wszystko rozwiązane #-o
Jabol
11.01.2004, 10:16:46
@uboottd: Tak mi się zastanawiało. A gdyby wszystkie kategorie były pomieszane i nie tak, że każda kategoria jest ma wpisy jeden po drugim? Albo jeszcze lepiej. Jakby było na przemian co pięć zawsze to samo, np.
Kod
jabłko
gruszka
pietruszka
bimber
jabol
jabłko
gruszka
pietruszka
bimber
jabol
itp
itd
to co wtedy?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.