Брой уникални на две полета с присъединяване

Имам: Таблица A с име на филм, ID на филм Таблица B с ID на филм, баркод (един филм може да има няколко баркода) Таблица C с клиенти под наем, която има баркод, ID на клиента.

Опитвам се да преброя общия брой клиенти под наем за всеки филм. Искам да броя "уникални" имена на филми (не баркодове) за всички клиенти. Ако двама клиенти наемат един и същ филм, това трябва да се брои като два пъти. Ако един и същи клиент наеме един и същ филм два пъти (независимо от баркода), това трябва да се брои като веднъж.

Моят код в момента изглежда така:

SELECT movie.NAME,
    count(UNIQUE movie_rental.barcode)
FROM movie_barcode
INNER JOIN Movie_Rentals
    ON movie_barcode.barcode = Movie_rentals.barcode
INNER JOIN movie
    ON movie_barcode.movie_number = movie.movie_number
GROUP BY movie.NAME;

Използвам Oracle.

Любезно съветвам.


person user3052350    schedule 06.12.2013    source източник
comment
използвай DISTINCT не Unique   -  person John Woo    schedule 06.12.2013


Отговори (1)


Опитайте тази

SELECT movie.NAME, COUNT(DISTINCT movie_rental.barcode)
FROM movie_barcode
INNER JOIN Movie_Rentals ON movie_barcode.barcode = Movie_rentals.barcode
INNER JOIN movie ON movie_barcode.movie_number = movie.movie_number
GROUP BY movie.NAME;
person Saharsh Shah    schedule 06.12.2013