Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z count(*) przy JOIN
bjen
post
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 !
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT count( DISTINCT a.ID) FROM OBJECTS oo RIGHT JOIN EXECUTIONS a ON oo.EXECUTION_ID = a.ID

@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.
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 - 13:01