[TIL#49 250502]

๊ฐ•๋ฏผ์ง€ยท2025๋…„ 5์›” 2์ผ
4

๋ฐ์ดํ„ฐ๋ถ„์„_TIL

๋ชฉ๋ก ๋ณด๊ธฐ
52/81

Daily plan

๐ŸŒž์˜ค์ „

- SQL ์ฝ”๋“œ์นดํƒ€ 3๋ฌธ์ œ
- 9์‹œ 30๋ถ„) QCC
- 11์‹œ) QCC ํ•ด์„ค

๐Ÿ”ฅ ์˜คํ›„

- ํƒœ๋ธ”๋กœ ๊ฐ•์˜ ~3์ฃผ์ฐจ
- 

๐ŸŒ ์ €๋…

- 20์‚ฌ) ์Šคํฌ๋Ÿผ + ํ€ด์ฆˆ
- TIL ์ œ์ถœํ•ด !!!!

์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” ํƒœ๋ธ”๋กœ

ํ€ด์ฆˆ

  1. ๋ถ„์‚ฐํ˜• ์ฐจํŠธ๋Š” ๋‘ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค (O/X)
  • ๋‹ต: O
  1. ํŠธ๋ฆฌ๋งต์€ ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐ„ ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค (O/X)
  • ๋‹ต: X
  • ํŠธ๋ฆฌ๋งต์€ ๊ณ„์ธต ๊ตฌ์กฐ๋‚˜ ๋น„์œจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์“ฐ์ž„
  1. ํƒœ๋ธ”๋กœ์—์„œ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€?
    A. ๋ฐ์ดํ„ฐ ํฌ๊ธฐ
    B. ์‹œ๊ฐํ™”์— ์‚ฌ์šฉํ•  ๊ทธ๋ž˜ํ”„ ์ข…๋ฅ˜
    C. ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๋นˆ๋„
  • ๋‹ต: B
  • ๊ทธ๋ž˜ํ”„ ์ข…๋ฅ˜๋Š” ์‹œ๊ฐํ™” ๋‹จ๊ณ„์—์„œ ๊ณ ๋ คํ•  ์š”์†Œ
  • ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ์‹œ์—๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ, ๋ณต์žก์„ฑ, ์—…๋ฐ์ดํŠธ ๋นˆ๋„, ์ถœ์ฒ˜์˜ ์‹ ๋ขฐ์„ฑ ๋“ฑ์ด ์ค‘์š”

QCC

๋ถ€์ œ: ๋ ˆ์ „๋“œ ๋ฉ์ฒญ์‡ผ

1.

select round(count(case when category='๋ถ„๋ฅ˜๋˜์ง€ ์•Š์€ ์ƒ๋‹ด' then 1 end)/count(1)*100, 1) as uncategorised_call_pct
from (
  select case when category is null or category='n/a' then "๋ถ„๋ฅ˜๋˜์ง€ ์•Š์€ ์ƒ๋‹ด" 
            else category end as category
  from calls
  where date_format(call_date, "%Y-%m-%d") < "2024-04-15") a

2024-04-15"๊นŒ์ง€"์ธ๋ฐ WHERE์ ˆ์—์„œ ๋“ฑํ˜ธ ์•ˆ์จ์„œ 2024-04-15 ๋นผ๋ฒ„๋ฆผใ…‹

2.

select user.age_bucket,
      round(
        sum(case when app.event_type='order' then 1 end)
        /sum(case when app.event_type<>'review' then 1 end)*100
      ,2) as conversion_rate
from app_events app
  join (select * from user_profiles where signup_date>"2023-01-01") user
  on app.user_id = user.user_id
group by user.age_bucket
order by user.age_bucket

2023-01-01 "์ดํ›„"๋ผ๋Š” ๊ฒƒ๋งŒ ๋ณด๊ณ  ์—ฌ๊ธฐ์„œ๋„ ๋“ฑํ˜ธ ์•ˆ์“ฐ๊ณ  2023-01-02๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•จ.......

3.

with rnk as (
  select user_id, order_datetime,
  rank() over(partition by user_id order by order_datetime) order_date_rnk
  from user_orders
)
select user_id, 
  datediff(max(order_datetime), min(order_datetime)) days_to_power_user
from rnk
where order_date_rnk in (1,10)
group by user_id
order by days_to_power_user

days_to_power_user๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ user๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š”๋ฐ,, limit 1 ์•ˆ๋•Œ๋ฆฌ๊ณ  ๊ฑ ์ˆœ์„œ ์ •๋ฆฌ๋งŒ ํ•ด๋ฒ„๋ฆผ....ใ…‹ใ…‹....


ํ”Œ์  ๋๋‚จ + ์—ฐํœด ์ฝ”์•ž์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ๊ณต๋ถ€๊ฐ€ ๋„ํ†ต ์†์— ์•ˆ์žกํžŒ๋‹ค
(ํ‰์†Œ์—๋Š” ์ž˜ ์žกํžŒ ์ฒ™ใ…Ž)

๊ฐœ์ธ๊ณผ์ œ๋„ ๊ณ„์† ์žŠ๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ฒจ์šฐ ํ•„์ˆ˜๋ฌธ์ œ๊นŒ์ง€๋งŒ ํ’€์—ˆ๋‹ค,,
์—ฐํœด๋™์•ˆ ๋ฏธ๋ค„๋‘” ๊ณต๋ถ€์™€ ํ”Œ์  ๋‚ด์šฉ ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹คใ…œ.ใ…œ

4๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2025๋…„ 5์›” 2์ผ

์—ฐํœด๋™์•ˆ...???

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2025๋…„ 5์›” 7์ผ

๋ฏผ์ง€๋‹˜ ์งฑ

1๊ฐœ์˜ ๋‹ต๊ธ€