以下數據在MySql表中。mysql查詢,我怎樣才能得到前5名下載與GROUP_CONCAT
brand_id|image_id|downloads
--------|--------|---------
8 |9 |8
35 |2829 |4
28 |2960 |3
28 |2961 |3
28 |3041 |3
35 |2831 |3
28 |2965 |3
35 |2832 |3
28 |2959 |2
28 |2976 |2
35 |2894 |2
我怎樣才能找到前5名的圖像與GROUP_CONCAT
功能在每個品牌 ,我想對以下返回
brand_id|image_ids
--------|--------------------------
8 |9
35 |2829,2831,2832,2894
28 |2960,2961,3041,2965,2959
下面的查詢提供了預期的結果
SELECT brand_id, SUBSTRING_INDEX(GROUP_CONCAT(image_id SEPARATOR ','),',',5) AS image_ids
FROM Table1
GROUP BY brand_id
我有大量的數據約2MILION記錄在表和brand_id,image_id都重複與每個用戶下載,所以當我運行查詢我得到foll由於錯誤
MySql Error: %d line(s) were cut by GROUP_CONCAT()
我覺得GROUP_CONCAT超出範圍, 可以請你提供的解決方案,所以我有隻獲取每個品牌前五名下載所以不需要SUBSTRING_INDEX功能。
謝謝
爲什麼要使用GROUP_CONCAT? – Strawberry
我想要排名前5的圖像ids逗號分開與每個品牌,有沒有什麼辦法請給我 – Girish
如果第五位的圖像與另一個圖像綁在一起怎麼辦? – Strawberry