Asosiy matnga o'tish

127. UNION va UNION ALL farqi

O'rtacha
AdvancedBeeline

Ikkita ro'yxat bor: prepaid va postpaid abonentlar. Ba'zi raqamlar

ikkala ro'yxatda ham bor, ba'zilari esa bitta ro'yxat ichida ham

takrorlangan.

Har bir raqam uchun ikkita sonni chiqaring:

  • all_rows — UNION ALL bilan birlashtirilganda o'sha raqam **necha

marta** uchraydi

  • distinct_rows — UNION bilan birlashtirilganda necha marta

uchraydi (ya'ni har doim 1)

Shu ikki ustunni yonma-yon qo'yib, UNION takrorlarni olib tashlashini,

UNION ALL esa saqlab qolishini ko'rasiz.

Ustunlar: phone, distinct_rows, all_rows.

Saralash: all_rows kamayish, keyin phone o'sish.

prepaid: id INT PK, phone VARCHAR

postpaid: id INT PK, phone VARCHAR

Namuna ma'lumotlar

sample
prepaid
idINTphoneVARCHAR(13)
1+998901111111
4+998901111111
6+998905555555
postpaid
idINTphoneVARCHAR(13)
7+998901111111
2+998907777777
Kutilgan natija
phoneall_rowsdistinct_rows
+99890111111131
+99890555555511
+99890777777711
sample-full
prepaid
idINTphoneVARCHAR(13)
1+998901111111
2+998902222222
3+998903333333
4+998901111111
5+998904444444
6+998905555555
7+998906666666
postpaid
idINTphoneVARCHAR(13)
1+998902222222
2+998907777777
3+998903333333
4+998908888888
5+998902222222
6+998909999999
7+998901111111
Kutilgan natija
phoneall_rowsdistinct_rows
+99890111111131
+99890222222231
+99890333333321
+99890444444411
+99890555555511
+99890666666611
+99890777777711
+99890888888811
+99890999999911
sample-extra
prepaid
idINTphoneVARCHAR(13)
4+964406061886
3+904990832490
5+986126161809
6+989167233456
2+989167233456
1+998233014835
postpaid
idINTphoneVARCHAR(13)
3+951696697890
6+990922125025
2+949633633299
5+969529507193
4+950488281622
1+987887333976
Kutilgan natija
phoneall_rowsdistinct_rows
+98916723345621
+90499083249011
+94963363329911
+95048828162211
+95169669789011
+96440606188611
+96952950719311
+98612616180911
+98788733397611
+99092212502511
+99823301483511

O'xshash masalalar

Konsol

Natijani ko'rish uchun so'rovni ishga tushiring.