Интерактивные задания, привязанные к этому уроку — выполните в реальной среде Kubernetes и проверьте результат.
database
SQL: subquery bilan filtr (IN SELECT)
Murakkabbolt+25 XP
failed deploy KO'RGAN servislar nomi kerak — JOIN yozmasdan, ichki so'rov (subquery) bilan. Vazifa query.sql — WHERE id IN (SELECT service id FROM deploys WHERE status='failed') bilan nomlarni alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) failed'i yo'q servislar chiqmaydi
database
SQL: mavjudlik tekshiruvi (EXISTS)
Murakkabbolt+25 XP
Kamida BITTA deploy ko'rgan servislar ro'yxati — mavjudlik semantikasi bilan (nechtaligi qiziqtirmaydi). Vazifa query.sql — WHERE EXISTS (SELECT 1 FROM deploys d WHERE d.service id = s.id) bilan nomlarni alifbo tartibida Muvaffaqiyat mezoni (jonli) Deploysizlar chiqmaydi
database
SQL: anti-join subquery bilan (NOT EXISTS)
Murakkabbolt+25 XP
HECH deploy qilinmagan servislar — C04'dagi LEFT+IS NULL o'rniga NOT EXISTS shakli (NULL-xavfsiz kanonik anti-join). Vazifa query.sql — WHERE NOT EXISTS (...) bilan deploysiz servis nomlarini alifbo tartibida Muvaffaqiyat mezoni (jonli) Deployli servislar chiqmaydi
database
SQL: hosila jadval (FROM ichida SELECT)
Murakkabbolt+25 XP
Muhit statistikasi ustida ishlash kerak: avval env bo'yicha sanab (ichki so'rov), so'ng 2+ bo'lganlarini olish — FROM ichidagi hosila jadval bilan. Vazifa query.sql — SELECT env, n FROM (SELECT env, COUNT( ) AS n FROM services GROUP BY env) WHERE n = 2 ORDER BY env Muvaffaqiyat mezoni (jonli) Natija HAVINGdagi (B07) bilan bir xil — usul boshqa
database
SQL: nomlangan oraliq natija (WITH / CTE)
Murakkabbolt+25 XP
O'qiluvchan ko'p bosqichli so'rov: prod svc nomli oraliq to'plam (CTE) e'lon qilinib, undan agregat olinadi. Vazifa query.sql — WITH prod svc AS (SELECT FROM services WHERE env='prod') SELECT COUNT( ), SUM(cpu) FROM prod svc Muvaffaqiyat mezoni (jonli) prod soni va jami CPU bitta qatorda
database
SQL: eng katta qiymatli qatorni olish (MAX subquery)
Murakkabbolt+25 XP
ENG KO'P CPU iste'mol qilayotgan servisning QATORI (nomi va qiymati) kerak — MAX'ni subquery'da hisoblab, unga tenglarini olish. Vazifa query.sql — WHERE cpu = (SELECT MAX(cpu) FROM services) bilan nom|cpu qaytarsin (nom tartibida) Muvaffaqiyat mezoni (jonli) Bir nechta teng maksimum bo'lsa hammasi chiqadi
database
SQL: istisno ro'yxati bilan filtr (NOT IN, ehtiyotkor)
Murakkabbolt+25 XP
excluded jadvalidagi nomlar hisobotdan CHIQARILSIN — NOT IN bilan, lekin NULL-tuzoqni bilib turib. Baza services + excluded(name TEXT) istisno ro'yxati Vazifa query.sql — excluded'da BO'LMAGAN servis nomlarini alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Istisno ro'yxatidagilar yo'q
database
SQL: ikki bosqichli CTE zanjiri
Murakkabbolt+25 XP
Ikki bosqichli hisobot: (1) env bo'yicha jami CPU; (2) shulardan 300 dan kattalarini olish — HAR bosqich NOMLANGAN CTE. Vazifa query.sql — WITH sums AS (env,total), big AS (total =300 filtri) SELECT FROM big ORDER BY env Muvaffaqiyat mezoni (jonli) env|total faqat katta guruhlar uchun
database
SQL: ikki ro'yxatni birlashtirish (UNION)
Osonbolt+15 XP
Ikki region servislarining YAGONA katalogi kerak — ikkala regionda bor servis BIR marta chiqsin. Baza eu services(name) va us services(name) Vazifa query.sql — UNION bilan birlashtirilgan noyob nomlarni alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Ikkala ro'yxatdagi umumiy nom takrorlanmaydi
database
SQL: takrorlar bilan birlashtirish (UNION ALL)
Osonbolt+15 XP
Yuk hisobida har region o'z nusxasini beradi — umumiy INSTANSLAR ro'yxati kerak (takror = ikki region degani, YO'QOLMASIN). Vazifa query.sql — UNION ALL bilan barcha yozuvlarni (takrorlar saqlangan holda) alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Umumiy nom IKKI marta chiqadi
database
SQL: ikkala ro'yxatda ham borlar (INTERSECT)
Osonbolt+15 XP
Multi-region servislar (IKKALA regionda ham deploy qilinganlar) ro'yxati kerak. Vazifa query.sql — INTERSECT bilan kesishmani alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Faqat umumiy nomlar
database
SQL: birida bor, ikkinchisida yo'q (EXCEPT)
Osonbolt+15 XP
EU'da bor-u, US'da YO'Q servislar — replikatsiya rejasi uchun farq ro'yxati. Vazifa query.sql — eu EXCEPT us ni alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Umumiylar va faqat-US'dagilar chiqmaydi
database
SQL: guruh elementlarini bitta satrga yig'ish (GROUP_CONCAT)
Murakkabbolt+25 XP
Hisobotda har muhit YONIDA uning servislari vergul-ro'yxat bo'lib tursin: prod → api,web. Baza services(name, env) Vazifa query.sql — tartiblangan manbadan env|GROUP CONCAT(name) qaytarsin (env tartibida; nomlar alifbo tartibida bo'lishi uchun ichki so'rovda ORDER BY) Muvaffaqiyat mezoni (jonli) dev|queue;prod|cache,gateway; ko'rinishida
database
SQL: shartli yig'indi bilan pivot (SUM+CASE)
Murakkabbolt+25 XP
Bitta QATORDA ikki ko'rsatkich: prod CPU jami VA dev CPU jami (ustunlarga "burish" — pivot). Baza services(name, env, cpu) Vazifa query.sql — SUM(CASE WHEN env='prod' THEN cpu ELSE 0 END) va dev uchun xuddi shunday — bitta qatorda prod|dev Muvaffaqiyat mezoni (jonli) 600|200 ko'rinishidagi bitta qator
database
SQL: agregatga filtr bandi (FILTER)
Murakkabbolt+25 XP
Deploy statistikasi bitta qatorda: jami, ok soni, failed soni — zamonaviy FILTER (WHERE ...) sintaksisi bilan. Baza deploys(build, status) Vazifa query.sql — COUNT( ), COUNT( ) FILTER (WHERE status='ok'), COUNT( ) FILTER (WHERE status='failed') Muvaffaqiyat mezoni (jonli) 5|3|2 ko'rinishidagi bitta qator
database
SQL: manba belgisi bilan birlashtirish (literal ustun)
Murakkabbolt+25 XP
Ikki ro'yxat bitta hisobotda, LEKIN har qatorning QAYERDAN kelgani ko'rinsin: eu|web, us|worker. Vazifa query.sql — har tarmoqqa literal manba ustuni qo'shib UNION ALL qiling; manba, so'ng nom tartibida Muvaffaqiyat mezoni (jonli) Har qator manba belgisi bilan
database
SQL: kutilgan va joriy holat farqi (drift)
Murakkabbolt+25 XP
expected jadvalida BO'LISHI KERAK bo'lgan servislar, actualda HOZIRGILAR — YETISHMAYOTGANLAR (expected'da bor, actual'da yo'q) ro'yxati kerak. Baza expected(name) va actual(name) Vazifa query.sql — expected EXCEPT actual (alifbo tartibida) Muvaffaqiyat mezoni (jonli) Faqat yetishmayotganlar
database
SQL: birlashma ustida agregatsiya — qamrov hisobi
Murakkabbolt+25 XP
Har servis NECHTA regionda mavjudligi kerak (shared|2, cache|1) — birlashma ustida GROUP BY. Vazifa query.sql — ikkala jadvalni UNION ALL qilib, name|COUNT( ) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Multi-region servislar 2 bilan ko'rinadi
database
SQL: o'rtacha qiymatdan baland iste'molchilar
Murakkabbolt+25 XP
O'rtacha CPU'dan KATTA iste'molchilarni topish kerak — o'rtacha esa shu jadvalning o'zidan JONLI hisoblanadi. Vazifa query.sql — WHERE cpu (SELECT AVG(cpu) FROM services) bilan nomlarni alifbo tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Chegara ma'lumotga qarab o'zi o'zgaradi (checker boshqa taqsimot bilan sinaydi)
database
SQL: qator yoniga bog'liq statistika (correlated subquery)
Murakkabbolt+25 XP
Servislar ro'yxati yonida HAR BIRINING deploy soni ko'rinsin — JOIN+GROUP o'rniga SELECT ichidagi bog'liq subquery bilan. Vazifa query.sql — SELECT s.name, (SELECT COUNT( ) FROM deploys d WHERE d.service id = s.id) FROM services s ORDER BY s.name Muvaffaqiyat mezoni (jonli) Deploysizlarga 0 chiqadi (LEFT JOIN kabi to'liq ro'yxat!)