[英]Selecting records in order of the number of records that contain a certain field
我們有一個這樣排列的表:ID,Album_ID和Time_Voted。 用戶每次投票時,都會創建一條新記錄。 我們想顯示前五個Album_ID(每個星期結束時包含該Album_ID的記錄最多)。 我知道如何執行此操作的唯一方法是選擇上周的所有記錄,然后對結果運行“ while”,然后遍歷數組,並在每次找到對應的Album_ID鍵時添加+1相同Album_ID的實例。 這是相當低效的,我相信可以通過SQL查詢來實現此目的,但是這超出了我的知識水平。
因此,問題是,有沒有一種方法可以通過查詢來獲取每個album_ID數量的計數,然后根據該計數進行排列?
這是我正在使用的原始SQL語句。 YEARWEEK的內容剛在上周得到。
SELECT * FROM wp_album_votes WHERE YEARWEEK( Time_Voted ) = YEARWEEK( CURRENT_DATE - INTERVAL 7 DAY ) ORDER BY Album_ID
SELECT Album_ID, COUNT(*) AS NumVotes
FROM wp_album_votes
WHERE YEARWEEK( Time_Voted ) = YEARWEEK( CURRENT_DATE - INTERVAL 7 DAY )
GROUP BY Album_ID
ORDER BY NumVotes DESC LIMIT 5
select album_id, count( album_id )
from wp_album_votes
group by album_id
order by 2 desc.
您可以將其他文字和日期包裝到此基本結構上...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.