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

SQL:Tìm chuỗi chung dài nhất giữa các hàng

Nếu bạn ổn với việc nhận được từ xuất hiện phổ biến nhất trong số tất cả các hàng (từ phổ biến nhất được phân tách bằng dấu cách), bạn có thể sử dụng:

select word, count(distinct rn) as num_rows
from(
select unnest(string_to_array(col, ' ')) as word,
       row_number() over(order by col) as rn
from tbl
) x
group by word
order by num_rows desc

Chơi đùa: http://sqlfiddle.com/#!15/bc803/9/0

Lưu ý rằng điều này tìm thấy từ apple trong số 4 hàng, không phải 5. Điều này là do APPLE123 là một từ, trong khi APPLE 123 sẽ là hai từ, một trong số đó là APPLE, và sẽ được tính, nhưng nó không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo cơ sở dữ liệu Postgres bằng python

  2. Chuyển đổi các truy vấn SELECT DISTINCT ON từ Postgresql sang MySQL

  3. Postgresql tạo tiện ích mở rộng không thành công

  4. Rails Postgres - Truy vấn cột Jsonb

  5. Giao dịch tự trị trong PostgreSQL 9.1