簡體   English   中英

按照包含特定字段的記錄數的順序選擇記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM