在具有连接的两个字段上计数唯一

时间:2013-12-06 10:06:57

标签: sql oracle select count group-by

我有: 表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。

请告知。

1 个答案:

答案 0 :(得分: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;