PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zliczyć wszystkie połączone wystąpienia w SQL?

Nie jest to łatwe, ponieważ masz inną liczbę pasujących produktów w ostatnim rzędzie w porównaniu z innymi rzędami. Możesz to zrobić za pomocą pewnego rodzaju operatora GROUP_CONCAT() (dostępnego w MySQL; możliwego do zaimplementowania w innych DBMS, takich jak Informix i prawdopodobnie PostgreSQL), ale nie jestem tego pewien.

Dopasowywanie parami

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;

Obsługa potrójnego dopasowania nie jest trywialna; rozszerzenie go dalej jest zdecydowanie raczej trudne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sortuj wartości NULL na końcu tabeli

  2. Wstawianie przygotowanego zestawienia do bazy danych - PSQL

  3. Zwróć typ tabeli z funkcji A w PostgreSQL

  4. SQLAlchemy weryfikuje połączenie SSL

  5. Szybkość obcinania Postgresql