我有一個名爲「明星」的表有兩列名人,電影和其他表名爲「發佈」與兩列名人,專輯。我想創建一個查詢,向我顯示一個帶有樹列的表格:名人,專輯數量,電影數量。查詢SQL與兩個表在一個,並顯示總數
因此,我的想法是,我想顯示已經播放到電影(從星表),並已製作了一個專輯(從發佈表),並在電影和專輯數量以下的名人。
謝謝
我有一個名爲「明星」的表有兩列名人,電影和其他表名爲「發佈」與兩列名人,專輯。我想創建一個查詢,向我顯示一個帶有樹列的表格:名人,專輯數量,電影數量。查詢SQL與兩個表在一個,並顯示總數
因此,我的想法是,我想顯示已經播放到電影(從星表),並已製作了一個專輯(從發佈表),並在電影和專輯數量以下的名人。
謝謝
也許這是你在找什麼:
SELECT movie.celeb, movieCount, albumCount
FROM
(SELECT celeb, count(1) movieCount
FROM star GROUP BY celeb) movie INNER JOIN
(SELECT celeb, count(1) albumCount
FROM releases GROUP BY celeb) album ON movie.celeb=album.celeb
它顯示了事實上的所有CELEBS名單,我只想讓那些曾在電影中播放過的人在同一時間製作了一張專輯。謝謝你 – user3325555
好的,我修改它,所以它只會顯示那些記錄在兩個表中,使用'INNER JOIN'來代替。 –
再次感謝:) – user3325555
我假設你的意思是「件數」和「電影的數量」。如果這是正確的,這應該工作:
select celeb,
sum(case when num_type = 'movie' then num_recs else 0 end as num_movies,
sum(case when num_type = 'album' then num_recs else 0 end as num_albums
from (select celeb, count(*) as num_recs, 'movie' as num_type
from star
group by celeb
union
select celeb, count(*) as num_recs, 'album' as num_type
from releases
group by celeb) x
group by celeb
select s.celeb, count(distinct movie), count(distinct album)
from star s join releases r on r.celeb = s.celeb
group by s.celeb
如何欄中的兩個「的專輯數量」有什麼不同? –
我剛剛編輯的電影 – user3325555