首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 查詢重複值 TOP N:GROUP BY + COUNT + LIMIT 實戰

     編輯:MySQL 綜合教學

需求:找出 article_keyword 表中 keyword 重複次數最多的前 20 名

核心 SQL

SELECT keyword, COUNT(*) AS cnt
FROM article_keyword
GROUP BY keyword
ORDER BY cnt DESC
LIMIT 20;

進階:只取重複次數去重 (如只要前 6 個不同的計數值)

SELECT DISTINCT COUNT(*) AS cnt
FROM article_keyword
GROUP BY keyword
ORDER BY cnt DESC
LIMIT 6;

效能優化建議

  1. 在 keyword 列建立索引,GROUP BY 可走索引掃描 (Loose Index Scan)。
  2. 若表極大,考慮定時統計表或物化視圖預聚合。
  3. 僅需 TOP N 時,LIMIT 可讓優化器提前終止排序 (Priority Queue)。

應用場景

  • 熱門標籤雲、熱搜關鍵字。
  • 重複資料清洗前的分析。
  • 異常值偵測 (如同一 IP 短時大量請求)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved