Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL:Czy mogę odwołać się/uzyskać dostęp do danych bieżącego wiersza w funkcji okna?

Zakładając, że używasz MySQL i zakładając, że Twoja tabela ma nazwę test i zakładając, że obie kolumny są typu string:

SELECT
  t1.id, count(t2.list)
FROM
(test t1 LEFT JOIN test t2 ON
  (t2.list LIKE CONCAT('%,', t1.id, ',%')) OR
  (t2.list LIKE CONCAT('%,', t1.id)) OR
  (t2.list LIKE CONCAT(t1.id, ',%')))
GROUP BY t1.id;

Należy pamiętać, że to rozwiązanie może być bardzo powolne w zależności od liczby posiadanych rekordów i średniej długości ciągów na list pole.

Jeśli potrzebujesz czegoś szybciej, myślę, że nie może to być pojedyncze zapytanie. Być może musielibyśmy w tym celu napisać procedurę składowaną lub jakąś logikę aplikacji albo użyć dodatkowych tabel lub kolumn i serii wielu instrukcji SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można pobrać identyfikatora wiersza za pomocą pdo

  2. Jak używać Regexp w poleceniach zamiany MySQL?

  3. Jak przekonwertować ludzką datę na uniksowy znacznik czasu w Mysql?

  4. WYBIERZ * GDZIE NIE ISTNIEJE

  5. Przełączanie z MySQL na Cassandra – wady/wady?