我必須執行SQL查詢才能根據視圖數獲取前10個相冊。觀看次數實際上是指定相冊中每首歌曲的總觀看次數。有關SQL查詢的幫助
我的表是:
albums:
- album_id
- album_name
- album_owner
songs:
- song_id
- song_name
- song_album
- song_owner
- song_views
你們能幫助我這一個?
我必須執行SQL查詢才能根據視圖數獲取前10個相冊。觀看次數實際上是指定相冊中每首歌曲的總觀看次數。有關SQL查詢的幫助
我的表是:
albums:
- album_id
- album_name
- album_owner
songs:
- song_id
- song_name
- song_album
- song_owner
- song_views
你們能幫助我這一個?
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;
如果song_album線指相冊ID ...
我認爲這就是它! 結果看起來不錯 謝謝! – Psyche 2009-08-27 09:04:56
試試這個:
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
不錯 - 請原諒我的無知,但只是MSSQL特定的TOP子句? PostgreSQL/SQLite/MySQL中的等價物是什麼? – 2009-08-27 09:00:02
@ meder use limit 10 ... for top 10 – 2009-08-27 09:01:36
我收到一個錯誤,提示「無效的使用組功能」:( – Psyche 2009-08-27 09:02:39
喜歡的東西:
select top 10 song_album
from songs
group by song_album
order by sum(song_views) desc
我不能運行它,但它應該是沿
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
SELECT TOP 10 song_album詩經 GROUP BY song_album ORDER BY 總和(song_views)遞減
你需要做的是在只有一個查詢? – mck89 2009-08-27 08:56:57
是的,很不幸。 – Psyche 2009-08-27 08:57:33