μαντείο - διαδρομή περνά από πολλά δομή τους κόμβους

ψήφοι
0

Έχω την ακόλουθη δομή χρησμό 12γ πίνακες:

Τραπέζι 1:

path_id   node_name_1   node_name_1_para   node_name_2  node_name_2_para
-------------------------------------------------------------------
    1      node1         node1_val           node2        node2_val
    1      node2         node2_val           node1        node1_val
    1      node2         node2_val           node3        node3_val
    1      node3         node3_val           node2        node2_val
    1      node3         node3_val           node4        node4_val
    1      node4         node4_val           node3        node3_val
    2      node3         node3_val           node6        node6_val
    2      node6         node6_val           node3        node3_val

Πίνακας 2:

path_id    start_node     end_node
-----------------------------------
   1         node1         node4
   2         node3         node6

όπου id είναι ένα id μονοπάτι που έχει πολλαπλούς κόμβους και node_name_1 και node_name_2 αντιπροσωπεύουν το λυκίσκο αυτής της πορείας. έτσι για παράδειγμα path_id = 1 εκκίνηση από node1 και τέλος στον κόμβο 4 (όπως ανά πίνακας2), περνώντας από Node2 και node3 (όπως ανά Πίνακας 1), ενώ path_id = 2 ξεκινούν από περιβάλλοντος5 και τέλος σε node6. Όπως μπορείτε να παρατηρήσετε, η -μεταξύ λυκίσκου είναι διπλές.

Θα πρέπει να μετατρέψετε αυτόν τον πίνακα με την ακόλουθη δομή:

    path_id   node_name   node_name_para  order
---------------------------------------------------
       1        node1       node1_val       1  
       1        node2       node2_val       2
       1        node3       node3_val       3  
       1        node4       node4_val       4  
       2        node3       node3_val       1  
       2        node6       node6_val       2  

μπορείτε να μου δώσετε κάποιες συμβουλές πώς θα προχωρήσουμε όπως είμαι ακόμα νέος στο μαντείο.

Δημοσιεύθηκε 09/10/2019 στις 18:59
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Δεν είμαι σε θέση να δείτε οποιαδήποτε χρήση του πίνακα 2. εδώ. Μπορείτε να αφαιρέσετε αντιγράφων από table1 τον εαυτό της ως εξής:

Select t.*, 
row_number() 
 over (partition by path_id order by to_number(replace(node_name, 'node', ''))) as order_
From
(Select distinct path_id,
Node_name,
Node_name_1_para
From table1) t
Order by path_id, order_;

Στην υγειά σας!!

Απαντήθηκε 09/10/2019 στις 19:24
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more