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

Truy vấn chọn MYSQL sử dụng count (*)

Bây giờ bạn đã giải thích kỹ hơn về những gì bạn thực sự muốn đạt được, có thể thấy rằng vấn đề phức tạp hơn nhiều. Bạn thực sự muốn tất cả các kết hợp của subscriber_idtag_id , và sau đó đếm số lượng mục nhập thực tế trong sản phẩm bảng đã kết hợp. khò khè. Vì vậy, đây là câu lệnh SQL:

SELECT combinations.tag_id,
       combinations.subscriber_id,

-- correlated subquery to count the actual hits by tag/subscriber when joining
-- the two tables using content_id

       (SELECT count(*)
        FROM content_hits AS h
        JOIN content_tag AS t ON h.content_id = t.content_id
        WHERE h.subscriber_id = combinations.subscriber_id
        AND t.tag_id = combinations.tag_id) as cnt

-- Create all combinations of tag/subscribers first, before counting anything
-- This will be necessary to have "zero-counts" for any combination of
-- tag/subscriber

FROM (
  SELECT DISTINCT tag_id, subscriber_id
  FROM content_tag
  CROSS JOIN content_hits
) AS combinations


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa ngoại MySQL - làm thế nào để thực thi 1-1 trên các bảng?

  2. Tìm kiếm một cột chứa dữ liệu CSV trong bảng MySQL để biết sự tồn tại của các giá trị đầu vào

  3. GROUP và COUNT () độ tuổi trong CakePHP

  4. Tham gia bảng InnoDB với bảng MyISAM

  5. MySQL; Loại dữ liệu tốt nhất cho số lượng lớn