我有一個視頻網站,每個視頻都在一個類別中,我想顯示每個類別中觀看次數最多的視頻。這種查詢可能嗎?
的視頻點擊量有自己的表,其中每一創歷史記錄的USER_ID和VIDEO_ID
的部分IM與計數如果單個用戶觀看視頻,其中十次命中掙扎它仍然只計算一個擊中。
謝謝。
我有一個視頻網站,每個視頻都在一個類別中,我想顯示每個類別中觀看次數最多的視頻。這種查詢可能嗎?
的視頻點擊量有自己的表,其中每一創歷史記錄的USER_ID和VIDEO_ID
的部分IM與計數如果單個用戶觀看視頻,其中十次命中掙扎它仍然只計算一個擊中。
謝謝。
你的意思是這樣
SELECT COUNT(DISTINCT(user_id))
FROM video_hits
WHERE video_id = '1826'
它應該給誰看過id爲視頻1826
編輯用戶總數:我只在MS SQL因爲我測試了這個目前在工作中 - 當我回家時,我可以在MySQL中查看它,但我認爲它是一樣的。
這聽起來像你停止命中表插入重複記錄?你應該這樣做,以便你可以執行一個select count(id),其中user_id = ??和video_id = ??。這將返回表中這兩個參數發生的次數。
如果單個用戶觀看視頻十次,它仍然只計算一次打擊。
使用COUNT(DISTINCT USER_ID)
的部分IM掙扎......
這是否意味着你已經解決了從每個類別獲得頂級的視頻的問題?這是SQL中更復雜的問題(the max-concat trick)
我** **想我有排序的其餘部分中,包括了一些其他表我沒有提到: - 選擇 \t COUNT(DISTINCT views.user_id)爲命中, \t \t categories.name爲cat_name, \t categories.url如cat_url, \t \t 作爲videos.id VIDEO_ID, \t videos.title標題, \t videos.file_still作爲圖像, \t \t 作爲users.username暱稱, \t \t series.url作爲SERIES_URL \t FROM'categories' JOIN視頻ON videos.category_id = categories.id JOIN用戶ON videos.user_id = users.id JOIN視圖ON videos.id = views.video_id JOIN系列ON videos.series_id =系列。編號 GROUP BY categories.id ORDER BY categories.name,hits DESC LIMIT 6 – 472084
因此,我不應該搜索唯一的結果,而應該首先在表中找到唯一的結果。我有這個在我心中,但不想沿着這條路線走。謝謝。 – 472084
不用擔心,我的想法要麼是我建議的,要麼在每次用戶觀看視頻檢查時查看是否曾經觀看過它,如果是這樣,如果不創建新記錄則增加視圖? – stuartmclark