首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MySQL 查詢發帖數量並按數量降序排列

     編輯:程式設計疑難解答

目標

統計某表中每個用戶(或主題)的發帖數,並按發帖數從多到少排序。

核心語法

SELECT author_id, COUNT(*) AS post_cnt
FROM posts
GROUP BY author_id
ORDER BY post_cnt DESC;

關鍵點解析

  1. GROUP BY author_id:按作者分組。
  2. COUNT(*):統計每組行數(發帖數)。
  3. ORDER BY post_cnt DESC:按統計結果降序。

進階場景

  • 帶條件統計:WHERE create_time > '2024-01-01' 限定時間範圍。
  • 分頁:LIMIT 20 OFFSET 0 取前 20 名。
  • 關聯用戶表:JOIN users ON users.id = posts.author_id 顯示用戶名。

完整示例

SELECT u.username, COUNT(p.id) AS post_cnt
FROM posts p
JOIN users u ON u.id = p.author_id
WHERE p.created_at >= '2024-01-01'
GROUP BY u.id, u.username
ORDER BY post_cnt DESC
LIMIT 10;

掌握 GROUP BY + COUNT + ORDER BY 黃金組合,輕鬆搞定各類排行榜統計需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved