![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Walczę ostatnio z poniższym problemem i pomysły mi sie wyczerpały, dlatego proszę Was o pomoc. Mam złączenie: select count(*) from OBJECTS oo RIGHT JOIN EXECUTIONS a ON oo.EXECUTION_ID = a.ID W tabeli w aplikacji wyświetlam jedynie obiekty z tabeli a, czyli EXECUTIONS. Zapytanie zwraca mi powtórzone obiekty z EXECUTIONS, dlatego w select używam DISTINCT, by każdy wiersz był unikalnym. Tu jest ok. Chciałbym teraz policzyć te unikalne wiersze i tu wystepuje problem. Gdy użyję powyższego zapytania, to zliczam wszystkie wiersze, te nieunikalne także. Moim pytaniem jest... jak spowodować, aby zliczyć jedynie te unikalne wiersze, czyli tak jakby wykonać zapytanie: select count(*) from EXECUTIONS a Tego zapytania niestety nie mogę użyć ze względu na specyfikę aplikacji, muszę korzystać z JOINa, takiego jak powyżej. count(DISTINCT) nie działa poprawnie w EJBQL. Macie jakieś wskazówki ? Z góry dzięki ! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 1.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
zapamiętaj, że kiedy wykorzystujesz funkcjie agregujące zawsze musisz używać klauzuli GROUP BY
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
@pjamalia - nieprawdą jest, że przy agregatach zawsze trzeba używać GROUP BY. Trzeba ich używać, gdy się używa pól grupujących. Powyższy przykład jest prawdiłowy, bo nie ma pól grupujących. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 21:49 |