အားလုံးပဲ မင်္ဂလာပါ။ ဒီနေ့ Day 18 အတွက်ကတော့ Leetcode ရဲ့ difficulties Medium level problem တစ်ပုဒ်ဖြစ်တဲ့ 1174. Immediate Food Delivery II ဆိုတဲ့ problem ကို ရွေးချယ်ထားပါတယ်။ ဒီပုစ္ဆာ အတွက်ကတော့ Delivery ဆိုတဲ့ table လေးပေးထားပြီး delivery_id , customer_id ,order_date, customer_pref_delivery_date Column လေးတွေပါဝင်ပါတယ်။
1Example 1:
2
3Input:
4Delivery table:
5+-------------+-------------+------------+-----------------------------+
6| delivery_id | customer_id | order_date | customer_pref_delivery_date |
7+-------------+-------------+------------+-----------------------------+
8| 1 | 1 | 2019-08-01 | 2019-08-02 |
9| 2 | 2 | 2019-08-02 | 2019-08-02 |
10| 3 | 1 | 2019-08-11 | 2019-08-12 |
11| 4 | 3 | 2019-08-24 | 2019-08-24 |
12| 5 | 3 | 2019-08-21 | 2019-08-22 |
13| 6 | 2 | 2019-08-11 | 2019-08-13 |
14| 7 | 4 | 2019-08-09 | 2019-08-09 |
15+-------------+-------------+------------+-----------------------------+
16Output:
17+----------------------+
18| immediate_percentage |
19+----------------------+
20| 50.00 |
21+----------------------+
22Explanation:
23The customer id 1 has a first order with delivery id 1 and it is scheduled.
24The customer id 2 has a first order with delivery id 2 and it is immediate.
25The customer id 3 has a first order with delivery id 5 and it is scheduled.
26The customer id 4 has a first order with delivery id 7 and it is immediate.
27Hence, half the customers have immediate first orders.
28 order_date နဲ့ customer_pref_delivery_date တူတာက immediate order ဖြစ်ပြီးမတူရင်က schedule လုပ်ထားတဲ့ order ဖြစ်ပါတယ်။
ကျွန်တော်တို့လုပ်ပေးရမှာကတော့ customer တွေရဲ့ ပထမဦးဆုံး order လည်းဖြစ်ရမယ် immediate order လည်းဖြစ်တဲ့ order တွေရဲ့ percentage ကိုရှာပေးပြီး decimal 2 နေရာစာ ROUND လုပ်ပေးရမှာပါပဲဖြစ်ပါတယ်။
Percentage ကိုလိုချင်ရင်တော့ လိုချင်တာကို တည် စုစုပေါင်းနဲ့စားပြီး 100နဲ့မြှောက်ပေးရမှာပဲဖြစ်ပါတယ်။
1*Formula*
2
3immediate_percentage = number of mmediate order of customer / total number of customer's order * 100Example မှာဆိုရင်လည်း သူရှင်းပြထားတဲ့ အတိုင်း customer 2 နဲ့ 4 ကပဲ immediate order ဖြစ်တော့ Immediate order က 2 total number of order က customer တစ်ယောက်ချင်းစီအတွက်ဆိုတော့ 4 ဖြစ်မယ်။100နဲ့မြှောက်လိုက်တော့ 50ရတာပဲဖြစ်ပါတယ်။ ကျွန်တော်ကတော့ အောက်ကအတိုင်း ရေးဖြစ်ခဲ့ပါတယ်။
1SELECT ROUND(
2 SUM(CASE WHEN order_date = customer_pref_delivery_date THEN 1 ELSE 0 END)
3 / COUNT(customer_id) * 100,
4 2
5) AS 'immediate_percentage' FROM (
6 SELECT
7 customer_id,
8 MIN(order_date) AS 'order_date',
9 MIN(customer_pref_delivery_date) AS 'customer_pref_delivery_date'
10 FROM Delivery GROUP BY customer_id
11) AS immediate_order;အရင်ဆုံး sub query လေးမှာဆို အေစာဆုံးဖြစ်တဲ့ order ကို လိုချင်တော့ MIN Function နဲ့ order_date ရယ် customer_pref_delivery_date ရယ်ကို စစ်ထုတ်ပေးပြီး customer တစ်ယောက်ချင်းစီအတွက်လိုချင်တာဖြစ်လို့ customer_id နဲ့ **GROUP BY **လုပ်ထားလိုက်ပါတယ်။
အပေါ်က main query လေးကိုပြန်ကြည့်မယ်ရင် ကျွန်တော်တို့ လိုချင်တဲ့ immediate order percentage ကို formula အတိုင်း Immediate order ကို total number of order နဲ့စား 100နဲ့မြှောက်ပြီး ရလာတဲ့ result ကို decimal 2 နေရာစာ ROUND လုပ်ပေးလိုက်တာပဲဖြစ်ပါတယ်။ ဒါဆိုသူလိုချင်တဲ့အတိုင်း အစောဆုံး order လည်းဖြစ် immediate order လည်းဖြစ်တဲ့ percentage ရရှိသွားပြီပဲဖြစ်ပါတယ်။
Video ကိုတော့အောက်က YouTube link လေးကနေတစ်ဆင့်ဝင်ကြည့်နိုင်ပါတယ်ဗျာ။ Stay safe and see you allပါဗျာ။
30 Days Of LeetCode Database Day 18 - 1174. Immediate Food Delivery II
Watch on YouTubeDiscussion
Join the conversation
How do you feel about this article?
Comments
Sign in to join the conversation
Sign in to be the first to comment!
Share Your Article
Share with your professional network
Recent Articles

AWS - Application Load Balancer
Elastic Load Balancing (ELB) ELB ဆိုတာကတော့ request တွေကို တစ်နေရာတည်းမှ လက်ခံကာ Amazon EC2 instances၊ containers, etc.....

Terraform Day 3: Benefits of Terraform State
Terraform ကိုလေ့လာ တဲ့အခါ ကျွန််တော်တို့ရဲ့ Project Folder ထဲမှာ terraform.tfstate ဆိုတဲ့ ဖိုင်လေးကို တွေ့ဖူးကြပါလိမ့်မယ...

Terraform Day 2: Essential IaC Principles You Must Know
မနေ့ကတော့ Terraform အကြောင်း အကြမ်းဖျင်း Concept ကို ပြောပြခဲ့ပြီးပြီဆိုတော့ ဒီနေ့မှာတော့ Terraform ကို Professional ကျက...

TCP/IP Protocol
အားလုံးပဲမင်္ဂလာပါ။ ဒီနေ့ ကျွန်တော်တို့ TCP/IP Protocol အကြောင်း ဆွေးနွေးသွားပါမယ်။ ပထမဆုံးအနေနဲ့ TCP/IP ရဲ့ History လေး...

Terraform Day 1: Introduction to IAC and Terraform
ကျွန်တော်တို့ cloud အကြောင်း စပြောကြပြီဆိုရင် အရင်ဆုံး ခေါင်းထဲရောက်လာတာ Console ထဲဝင်၊ UI ကနေ ခလုတ်လေးတွေ လိုက်နှိပ်ပြီ...


