2009-08-27 12 views
0

SQLクエリを実行して、ビュー数に応じてトップ10のアルバムを取得する必要があります。ビューの数は、実際には指定したアルバムの各曲のビューの合計です。SQLクエリのヘルプ

私のテーブルは以下のとおりです。

albums: 
- album_id 
- album_name 
- album_owner 

songs: 
- song_id 
- song_name 
- song_album 
- song_owner 
- song_views 

は君たちがこの1で私を助けることはできますか?

select top 10 song_album 
from songs 
group by song_album 
order by sum(song_views) desc 
+0

BY song_albumのORDER BY GROUP曲のトップ10 song_albumを選択するには、一つだけのクエリでそれを行う必要がありますか? – mck89

+0

うん、残念ながら。 – Psyche

答えて

4
select sum(song_views) as 'song_sum',album_name 
from albums a 
inner join 
songs s 
on a.album_id = s.song_album 
group by album_name 
order by song_sum DESC 
limit 0,10; 

の線に沿って次のようになります。

SELECT TOP 10 a.album_id, a.album_name, a.album_owner, SUM(s.song_views) 
FROM albums a 
     INNER JOIN 
       songs s 
       ON a.album_id = s.song_album 
GROUP BY a.album_id, a.album_name, a.album_owner 
ORDER BY SUM(s.song_views) DESC 
+0

これはそれだと思います! 結果はOKです。 ありがとう! – Psyche

3

これを試してみてくださいアルバムIDを指します...

+0

ニース - 私の無知を言い訳がありますが、TOP節はMSSQL特有のものですか? PostgreSQL/SQLite/MySQLの同等のものは何ですか? –

+0

@ meder使用制限10 ...トップ10用 –

+0

「グループ機能の無効な使用」と表示されるエラー: – Psyche

0

私はこれを実行することができませんでしたが、それはsong_album場合

select album_name, sum(song_views) as views from albums join songs on songs.album_id = songs.song_album group by album_id order by views desc limit 10 
0

合計(song_views)DESC