PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एसक्यूएल में अंक के डेटाबेस से पथ प्राप्त करें

array[array[source, destination]] . के साथ पुनरावर्ती सीटीई का उपयोग करें एकत्रीकरण कॉलम के रूप में:

with recursive cte(source, destination, path) as (
    select source, destination, array[array[source, destination]]
    from points
union all
    select p.source, p.destination, path || array[p.source, p.destination]
    from cte c
    join points p on c.destination = p.source
    where not array[array[p.source, p.destination]] <@ path
)
select distinct on (path[1:1]) path
from (
    select distinct on (source, destination) *
    from cte
    order by source, destination, array_length(path, 1) desc
    ) s    
order by path[1:1], array_length(path, 1) desc;

        path         
---------------------
 {{1,2},{2,3},{3,7}}
 {{5,7}}
 {{9,12}}
(3 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:जब NOT IN और NOT EQUAL TO की बात आती है, तो कौन सा अधिक कुशल है और क्यों?

  2. ऑफ़सेट सीमा वाली क्वेरी का चयन बहुत धीमा है

  3. Postgresql में एक-के-दो नहीं शून्य बाधा जोड़ना

  4. स्प्रिंग डेटा मूल क्वेरी पोस्टग्रेज jsonb स्ट्रिंग मौजूद ऑपरेटर (प्रश्न चिह्न) की अनुमति नहीं देती है

  5. अजगर के साथ एसक्यूएल स्टेटमेंट जेनरेट करें