- Samsung Galaxy A52s 5G - jó S-tehetség
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 17 Ultra - jó az optikája
- Apple iPhone 17e – mágnesek ereje
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- iPhone topik
- Mégsem lesz Sony autó
- Apple Watch
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
DopeBob
#2511
üzenetére
MySQL-es példát mutatsz, de CONNECT BY-t szeretnél használni, ami az "igazi" Oracle-ben van, MySQL-ben nincs, így maradjunk az Oracle-nél. A példádat kicsit kiegészítettem, mert ha csak két szintes a hierarchia, akkor túl triviális, még CONNECT BY sem kell.
create table table1 (id varchar2(10), part varchar2(100), qty int);
insert into table1 (id, part, qty) values ('1', '1--1', 2);
insert into table1 (id, part, qty) values ('1', '1--2', 4);
insert into table1 (id, part, qty) values ('1', '1--3', 8);
insert into table1 (id, part, qty) values ('1', '1--4', 5);
insert into table1 (id, part, qty) values ('1--1', '1--1--1', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--2', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--3', 2);
insert into table1 (id, part, qty) values ('1--2', '1--2--1', 2);
insert into table1 (id, part, qty) values ('1--3', '1--3--1', 2);
insert into table1 (id, part, qty) values ('1--4', '1--4--1', 3);
insert into table1 (id, part, qty) values ('1--4--1', '1--4--1--1', 7);
commit;Lekérdezés + eredmény:
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty
from table1 t1
start with id = '1'
connect by id = prior part;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1 1--1 2 2
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1 1--2 4 4
1--2 1--2--1 2 8
1 1--3 8 8
1--3 1--3--1 2 16
1 1--4 5 5
1--4 1--4--1 3 15
1--4--1 1--4--1--1 7 105Ha csak azok érdekelnek, amelyek a hierarchia utolsó szintjén vannak:
select id, part, qty, mqty from (
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty,
connect_by_isleaf leaf
from table1 t1
start with id = '1'
connect by id = prior part)
where leaf = 1;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1--2 1--2--1 2 8
1--3 1--3--1 2 16
1--4--1 1--4--1--1 7 105
Új hozzászólás Aktív témák
- Milyen légkondit a lakásba?
- Samsung Galaxy A52s 5G - jó S-tehetség
- Linux kezdőknek
- Gumi és felni topik
- A Föld teraformálásával építene galaktikus birodalmat Elon Musk
- Amazon
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Győr és környéke adok-veszek-beszélgetek
- Samsung Galaxy A56 - megbízható középszerűség
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
- Dell Inspiron N5010 i5 M520/4 GB RAM/Radeon HD5650/128 GB SSD laptop
- Logitech G920 PC/Xbox kormány.
- Elektronikus tárolómérleg 40 kg-ig, LCD alig használt
- ROG Core PC - ROG X570, Ryzen 7 3700X, 16Gb RGB, ROG RTX 2060 Super 8Gb, 500Gb M2 SSD - Windows 11
- !AKCIÓ! GAMER PC Intel Core i5-12600KF/ASRock - Z790 PRO RS/D4/MSI RTX 3080 Suprim X 10GB/32 GB DDR4
- 27% - LG 27MK600M-B IPS Monitor! 1920x1080 / 75Hz / 5ms / FreeSync
- Apple iPhone 13 Pro 128GB,Újszerű,Adatkabel,12 hónap garanciával
- Samsung Galaxy S25 Ultra 5G 12/256GB Titanium Black használt, szép állapot 6 hónap garancia
- Samsung Galaxy S21 Ultra / 12/256GB / Kártyafüggetlen / 12Hó Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


