Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lấy các thẻ phổ biến nhất tổng thể từ các bảng chuẩn hóa?

Bạn có thể thực hiện một sửa đổi đơn giản cho truy vấn của mình:

SELECT t.id, t.tag, COUNT(*) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY COUNT(*) DESC
LIMIT 20;

Có lẽ, các id khác nhau là NULL khi chúng không thích hợp. Nếu vì một lý do kỳ lạ nào đó, bạn thực sự đã lưu trữ các giá trị trong cả ba id cho một xref nhất định, bạn có thể thực hiện:

SELECT t.id, t.tag,
       (COUNT(story_id) + COUNT(discussion_id) + COUNT(article_id) ) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY cnt DESC
LIMIT 20;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tránh đưa vào SQL trong SQL-regex do người dùng tạo

  2. Làm cách nào để hiển thị hình ảnh được lưu trữ trong cơ sở dữ liệu MySQL?

  3. MySQL Store Image BLOB Bad Practice Performance

  4. Khắc phục sự cố Lỗi kết hợp bất hợp pháp các đối chiếu trong mysql

  5. nhập dữ liệu mysql vào hdfs (hadoop 2.4.1) bằng sqoop (1.4.5)