sql難題:尋找問答中最高復制量的最佳答案
在問答系統中,為每個回答標記復制量和點贊量。在糾結一番后,從龐雜的數據表中提取如下查詢結果:
需求:
找出每個回答中復制量最高的答案。如果復制量相同,則選擇點贊量最高的答案。換句話說,按照 copy_count desc, zan_count desc 進行分組。
數據庫版本限制:
數據庫版本為 5.7.25,不支持 over() 函數。
解決方案:
select * from (select * from 圖1 order by copy_count,zan_count) tmp group by tmp.question_id;
原理:
- 首先,按照 copy_count 和 zan_count 進行倒序排序。
- 然后,對排序后的結果進行分組,以 question_id 為分組鍵。
- 由于每組中的第一條記錄是復制量最高且點贊量最高的答案,因此該查詢將返回所需的結果。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END