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

Làm thế nào để đếm tất cả các lần xuất hiện kết hợp trong SQL?

Không dễ dàng vì bạn có số lượng sản phẩm phù hợp ở hàng cuối cùng khác với các hàng khác. Bạn có thể làm điều đó với một số loại toán tử GROUP_CONCAT () (có sẵn trong MySQL; có thể triển khai trong DBMS khác, chẳng hạn như Informix và có thể là PostgreSQL), nhưng tôi không tự tin về điều đó.

Đối sánh theo cặp

SELECT p1.product_name AS name1, p2.product_name AS name2, COUNT(*)
  FROM (SELECT p.product_name, h.transaction_id
          FROM products AS p
          JOIN transactions_has_products AS h ON h.product_id = p.product_id
       ) AS p1
  JOIN (SELECT p.product_name, h.transaction_id
          FROM products AS p
          JOIN transactions_has_products AS h ON h.product_id = p.product_id
       ) AS p2
    ON p1.transaction_id = p2.transaction_id
   AND p1.product_name   < p2.product_name
 GROUP BY p1.name, p2.name;

Xử lý trận đấu ba không phải là tầm thường; mở rộng nó xa hơn thế chắc chắn là khá khó khăn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mac OSX Lion Postgres không chấp nhận kết nối trên /tmp/.s.PGSQL.5432

  2. Sử dụng Hàm tương quan PostgreSQL

  3. Tổng hợp không được phép trong mệnh đề WHERE trong lỗi postgreSQL

  4. SQL LIKE điều kiện để kiểm tra số nguyên?

  5. Cách thêm số ngày trong datetime postgresql