![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
witam, mam tabele
grupa | ilosc gr1 | 3 gr2 | 2 gr3 | 6 gr1 | 2 gr2 | 4 chciałbym aby w wyniku zapytania otrzymać gr1 | 5 gr2 | 6 gr3 | 6 jest jakis operator zliczajacy wartosci pol dla danej grupy? koniecznie wartosci nie ilosc tj w przypadku COUNT(*) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie.
Pisałem o czymś takim:
(o ile dobrze pamiętam to nazywa się zapytanie skorelowane) Jak widzisz dla każdego rekordu jest liczone Wynik tego jest czynnikiem dzielenia i na końcu to jest grupowane i sumowane. Pewnie optymalizator zapytań poradziłby sobie z tym, ale nie zawsze i nie na każdej bazie. Zresztą można to zamienić na takie zapytanie (jest równoważne):
Ale tu już sposób liczenia jest zupełnie inny - polecam zobaczyć plan zapytania (w PgAdmin "F7") dla wszystkich trzech zapytań. Nie sprawdzałem (z ciekawości zaraz to zrobię), ale myślę, że różnica będzie kosmiczna... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 07:53 |