μλ νμΈμ! μ€λμ μν νλ§€ μΉμ¬μ΄νΈμμ νλ³ μ΄ μν λ ΈμΆ μλ₯Ό κ³μ°νλ λ¬Έμ μ λν΄ μ€λͺ ν΄λ³΄λ €κ³ ν©λλ€!
μ΄ λ¬Έμ λ μ κ° SQL μ½λ©ν μ€νΈλ₯Ό μ§ννλ μ€ λλ©μΈμ λν μ΄ν΄κ° μλ°λμ΄μΌ ν μ μκ² κ΅¬λ μκ°λμ΄ κΈμ μμ±νκ²λμμ΅λλ€.
λ¬Έμ μ λν μ΄ν΄μ μ΄μ μ λ§μΆ°μ κΈμ μμ±νμΌλ©° λ¬Έμ λ μ κ° μμλ‘ λ³νν λ¬Έμ μμ μλ €λ립λλ€:)
1. λ¬Έμ
μΉμ¬μ΄νΈμμ μν λ ΈμΆμ λν λ°μ΄ν°λ₯Ό κΈ°λ‘ν ν μ΄λΈμ΄ μμ΅λλ€. (impression_log)
- event_type: impression
- device_type: visit_log ν μ΄λΈκ³Ό λμΌ
- content_type: product
- content_id: μνμ κ³ μ ID
- content_position: μνμ΄ λ ΈμΆλ μμΉμ λ²νΈ(ex. κ²μ κ²°κ³Όμμ λνλλ μμ). ν΄λ¦λλ©΄ view_logλ‘ μ λ¬λλ€.
- page_id: μνμ΄ λ ΈμΆλ νμ΄μ§(ex. ν, κ²μκ²°κ³Ό λ±)
- ref_term: κ²μ κ²°κ³Όλ‘ λ ΈμΆλ μνμΈ κ²½μ°, κ·Έ κ²μμ΄
- imp_id: μνμ λ ΈμΆ κ³ μ ID. ν΄λ¦λλ©΄ view_logλ‘ μ λ¬λλ€.
- server_time: μκ°
- session_id: μΈμ ID
- user_id: μ¬μ©μ κ³ μ ID
μνμ΄ 1νμ 5κ°μ© λ ΈμΆλ λ, λ€μ ν μ΄λΈμ μ΄μ©νμ¬ νλ³ μ΄ λ ΈμΆ μλ₯Ό ꡬνμμμ€.
(λ¨, μνμ΄ λ ΈμΆλ μμΉμ λ²νΈλ 0λΆν° μμνλ©°, μ΅λ 20 λ―Έλ§μΌλ‘ μ νν¨)
2. λ¬Έμ νμ΄
step1)
μ°μ λ¬Έμ μ λν μ΄ν΄κ° μλ°λμ΄μΌ ν©λλ€.
μνμ΄ 1νμ 5κ°μ© λ ΈμΆλλ€λ μλ―Έλ 무μμΌκΉμ?
λ€μκ³Ό κ°μ΄ μνμ 첫λ²μ§Έ λΌμΈμ΄ ν=1μ΄ λ©λλ€. ν λΌμΈμλ 보μλ κ²κ³Ό κ°μ΄ 5κ°μ μ νμ΄ λ ΈμΆλκ³ μμ΅λλ€!
μ΄λ, ν=1μ 5κ° μνμ λν΄ μΌμͺ½μμλΆν° content_positionμ λΆμ¬νλλ° 0, 1, 2, 3, 4λ‘ λΆμ¬λ©λλ€.
κ·Έλ λ€λ©΄ ν=2μ 5κ° μνμ content_positionμ΄ μ΄μ΄μ 5, 6, 7, 8, 9λ‘ λΆμ¬λκ² μ£ ?
step2)
νμ¬ λ°μ΄ν°μμλ content_positionμ λν 컬λΌλ§ μμΌλ―λ‘ νλ²νΈ(RowNum)μ λΆμ¬ν΄μ€μΌ ν©λλ€.
step3)
λ°μ΄ν° μΆμΆμ μν΄ νΉμ§μ μ°Ύμ보μμ΅λλ€.
- ν=1, content_position = 0, 1, 2, 3, 4
-> 곡ν΅μ : 5λ‘ λλ΄μ λ, λͺ«μ΄ 0
- ν=2, content_position = 5, 6, 7, 8, 9
-> 곡ν΅μ : 5λ‘ λλ΄μ λ, λͺ«μ΄ 1
μ΅μ’ νμ΄)
FLOOR() ν¨μλ₯Ό μ¬μ©νμ¬ 5λ‘ λλ΄μ λμ λͺ«μ νλ²νΈλ‘ λΆμ¬ν΄μ£Όμμ΅λλ€!
μ΄ν, νλ²νΈλ‘ GROUP BYνμ¬ COUNT(*) ν¨μλ₯Ό ν΅ν΄ ν λ³ λ ΈμΆμλ₯Ό κ³μ°νμμ΅λλ€.
SELECT FLOOR(content_position / 5) AS RowNum
, COUNT(*) AS 'λ
ΈμΆμ'
FROM impression_log
WHERE content_position < 20
GROUP BY RowNum
ORDER BY RowNum
* FLOOR() : λ΄λ¦Ό
λ¬Έμ μ체λ₯Ό μ²μ 보μμ λλ λ¬Έμ κ° μ΄ν΄κ° λμ§ μμμ§λ§, μ΄ν΄ν νμλ λ¬Έμ κ° μ½κ² ν리λλΌκ΅¬μ!
λΉμ·ν λ¬Έμ μ λν΄ λ°μ΄ν° μΆμΆμ κ³ λ―Όνκ³ κ³μλ λΆλ€κ» λ§μ λμμ΄ λμμΌλ©΄ μ’κ² μ΅λλ€:)
