<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>데이터 짱이 되고 싶은 돌</title>
    <link>https://notes1365.tistory.com/</link>
    <description> </description>
    <language>ko</language>
    <pubDate>Sun, 5 Jul 2026 14:29:54 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jjangdoll</managingEditor>
    <image>
      <title>데이터 짱이 되고 싶은 돌</title>
      <url>https://tistory1.daumcdn.net/tistory/7524023/attach/e37ed7584aae47f7ba9cdc9b6ff06321</url>
      <link>https://notes1365.tistory.com</link>
    </image>
    <item>
      <title>SQL | Challenges (중복값 조건에 맞춰서 제거)</title>
      <link>https://notes1365.tistory.com/185</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Challenges&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755831755921&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Challenges | HackerRank&quot; data-og-description=&quot;Print the total number of challenges created by hackers.&quot; data-og-host=&quot;www.hackerrank.com&quot; data-og-source-url=&quot;https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true&quot; data-og-url=&quot;https://www.hackerrank.com/challenges/challenges/problem&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dcQDrX/hyZC39PXmb/2EBhYybb1Cv13UM335QIlK/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229&quot;&gt;&lt;a href=&quot;https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dcQDrX/hyZC39PXmb/2EBhYybb1Cv13UM335QIlK/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Challenges | HackerRank&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Print the total number of challenges created by hackers.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.hackerrank.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-08-22 오후 12.02.59.png&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;836&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmBear/btsP1qH9Pud/dm3odewhYeMRErZ1onzLrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmBear/btsP1qH9Pud/dm3odewhYeMRErZ1onzLrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmBear/btsP1qH9Pud/dm3odewhYeMRErZ1onzLrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmBear%2FbtsP1qH9Pud%2Fdm3odewhYeMRErZ1onzLrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1146&quot; height=&quot;836&quot; data-filename=&quot;스크린샷 2025-08-22 오후 12.02.59.png&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;836&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-08-22 오후 12.03.14.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ocBhn/btsP0Opfvqh/kNQACAEKCdPwFb0IndCFc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ocBhn/btsP0Opfvqh/kNQACAEKCdPwFb0IndCFc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ocBhn/btsP0Opfvqh/kNQACAEKCdPwFb0IndCFc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FocBhn%2FbtsP0Opfvqh%2FkNQACAEKCdPwFb0IndCFc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;822&quot; data-filename=&quot;스크린샷 2025-08-22 오후 12.03.14.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;822&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- challenge_id 갯수가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 최댓값이 중복일 경우 : 유지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 그 외 중복일 경우 : 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;내가 쓴 답:&lt;/h4&gt;
&lt;pre id=&quot;code_1755831950092&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH A AS(
    SELECT
        h.hacker_id,
        h.name,
        COUNT(c.challenge_id) AS cnt
    FROM
        Hackers h JOIN Challenges c ON h.hacker_id = c.hacker_id
    GROUP BY 1,2),
B AS (
        SELECT
        hacker_id, name, cnt,
        COUNT(*) OVER(PARTITION BY cnt) AS freq,
        RANK() OVER(ORDER BY cnt DESC) AS rum
    FROM A)
SELECT hacker_id, name, cnt
FROM B
WHERE rum = 1 OR freq = 1
ORDER BY cnt DESC, hacker_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CTE1 : challenge_id 개수 + 테이블 조인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CTE2 : challenge_id 개수를 카운트 &amp;rarr; 빈도 / challenge_id 개수 많은순으로 순위 매김&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 최종 : wherer 조건에서 빈도가 1 or 순위가 1인 놈만 남김&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다른 사람이 쓴 답:&lt;/h4&gt;
&lt;pre id=&quot;code_1755831978689&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH cte AS (
    SELECT
    h.hacker_id AS hck,
    h.name AS nam,
    COUNT(challenge_id) AS cnt
FROM
    hackers h
    INNER JOIN challenges c ON c.hacker_id = h.hacker_id
GROUP BY
    h.hacker_id, h.name),   
     cte2 AS (SELECT
        cnt
    FROM
        cte
    WHERE
        cnt &amp;lt; (SELECT MAX(cnt) FROM cte)
    GROUP BY
        cnt
    HAVING
        COUNT(cnt) &amp;gt; 1)  
SELECT
    *
FROM
    cte
WHERE
    cnt NOT IN (SELECT cnt FROM cte2)
ORDER BY
    cnt DESC,hck;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CTE1 : 나랑 동일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CTE2 : where 조건에서 challenge_id 개수 최댓값 제외한 cnt / 같은 cnt끼리 그룹핑 / 그룹핑 중 빈도 2 이상만 남김 &amp;rarr; 제거 리스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 최종 : where 조건에서 CTE2(제거 리스트) 아닌 것들만 출력&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ORDER BY로 정리 안 하고 또 계속 정답 처리 안 되길래 지피티 ..^^ 내일 테스트 어케 하려고₩~~~&lt;/p&gt;</description>
      <category>SQL/문제</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/185</guid>
      <comments>https://notes1365.tistory.com/185#entry185comment</comments>
      <pubDate>Fri, 22 Aug 2025 12:32:06 +0900</pubDate>
    </item>
    <item>
      <title>SQL | OCCUPATIONS (결과물 수직으로 출력)</title>
      <link>https://notes1365.tistory.com/184</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;OCCUPATIONS&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755826211633&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Occupations | HackerRank&quot; data-og-description=&quot;Pivot the Occupation column so the Name of each person in OCCUPATIONS is displayed underneath their respective Occupation.&quot; data-og-host=&quot;www.hackerrank.com&quot; data-og-source-url=&quot;https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true&quot; data-og-url=&quot;https://www.hackerrank.com/challenges/occupations/problem&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b3G9On/hyZyiHCn54/NH98WMJhvfbRS3mXfX2Cv1/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229&quot;&gt;&lt;a href=&quot;https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b3G9On/hyZyiHCn54/NH98WMJhvfbRS3mXfX2Cv1/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Occupations | HackerRank&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Pivot the Occupation column so the Name of each person in OCCUPATIONS is displayed underneath their respective Occupation.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.hackerrank.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-08-22 오전 10.30.24.png&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMEN3/btsP0OQd50Z/8CWThjpOtbkGYm6CD6IkCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMEN3/btsP0OQd50Z/8CWThjpOtbkGYm6CD6IkCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMEN3/btsP0OQd50Z/8CWThjpOtbkGYm6CD6IkCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMEN3%2FbtsP0OQd50Z%2F8CWThjpOtbkGYm6CD6IkCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1010&quot; height=&quot;420&quot; data-filename=&quot;스크린샷 2025-08-22 오전 10.30.24.png&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-08-22 오전 10.31.17.png&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;764&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be0Pwo/btsP2FdqBa3/mnWZzawmTQwI5Mz54LgAr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be0Pwo/btsP2FdqBa3/mnWZzawmTQwI5Mz54LgAr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be0Pwo/btsP2FdqBa3/mnWZzawmTQwI5Mz54LgAr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe0Pwo%2FbtsP2FdqBa3%2FmnWZzawmTQwI5Mz54LgAr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1152&quot; height=&quot;764&quot; data-filename=&quot;스크린샷 2025-08-22 오전 10.31.17.png&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;764&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;샘플 예시처럼 그룹별 이름을 수직으로 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;내가 쓴 답:&lt;/h4&gt;
&lt;pre id=&quot;code_1755826411296&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH A AS (
   SELECT 
     ROW_NUMBER() OVER(PARTITION BY Occupation ORDER BY Name) AS Num, 
     Name, 
     Occupation
   FROM OCCUPATIONS
)
SELECT 
    MAX(CASE WHEN Occupation = 'Doctor' THEN Name END) AS 'Doctor',
    MAX(CASE WHEN Occupation = 'Professor' THEN Name END) AS Professor,
    MAX(CASE WHEN Occupation = 'Singer' THEN Name END)AS 'Singer',
    MAX(CASE WHEN Occupation = 'Actor' THEN Name END) AS 'Actor'
FROM A
GROUP BY Num ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 우선 직업 별로 순번 매겨주는 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ 그룹으로 묶을 수 있게 :&lt;/span&gt;&amp;nbsp;row_number&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. MAX랑 CASE WHEN 이용해서 가로 데이터를 세로로 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; (MAX를 쓰는 이유 : 안 쓰고 CASE WHEN만 사용할 경우 해당하는 그룹값 외 null 값이 출력되는 것을 정리 + 오류 방지) &amp;rarr; 최댓값 의미가 아니라 한 개의 값으로 축약하는 용도 (MIN도 사용가능)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 WITH A &lt;b&gt;&lt;i&gt;&quot;&lt;u&gt;AS&lt;/u&gt;&quot; &amp;rarr; 이거&amp;nbsp; 빼먹어서 오류 계속 남^^.. 결국 지피티 돌려버림 ㅎ&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>SQL/문제</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/184</guid>
      <comments>https://notes1365.tistory.com/184#entry184comment</comments>
      <pubDate>Fri, 22 Aug 2025 10:49:08 +0900</pubDate>
    </item>
    <item>
      <title>TIL 25.3.14</title>
      <link>https://notes1365.tistory.com/183</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/182&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.03.14 - [SQL/문제] - SQL | 6회차&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1741952665582&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;SQL | 6회차&quot; data-og-description=&quot;1번각 성별(GENDER) 기준시험 점수가 높은 상위 3명의 학생 성별, 이름과 점수를 반환두 학생이 동점일 경우, 나이가 많은 학생을 우선결과는 성별(GENDER) 오름차순, 순위 오름차순으로 정렬&amp;nbsp;내가 &quot; data-og-host=&quot;notes1365.tistory.com&quot; data-og-source-url=&quot;https://notes1365.tistory.com/182&quot; data-og-url=&quot;https://notes1365.tistory.com/182&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bnrc2Z/hyYqXw8uMw/MQOEqznuH7RllIOA15Jr6k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dKpXqH/hyYqTIgAFE/vkqfJhoKHRc7iXOiy72gq0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/182&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://notes1365.tistory.com/182&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bnrc2Z/hyYqXw8uMw/MQOEqznuH7RllIOA15Jr6k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dKpXqH/hyYqTIgAFE/vkqfJhoKHRc7iXOiy72gq0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SQL | 6회차&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1번각 성별(GENDER) 기준시험 점수가 높은 상위 3명의 학생 성별, 이름과 점수를 반환두 학생이 동점일 경우, 나이가 많은 학생을 우선결과는 성별(GENDER) 오름차순, 순위 오름차순으로 정렬&amp;nbsp;내가&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;notes1365.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;qcc 할 때만 돌아오는~..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꾸준히 작성하려고 했는데 생각보다 프로젝트가 너무 어려워서 정신없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 이력서, 포트폴리오까지 하려니까 시간이 너무 빨리 지나가잖아!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리 조 최종 목표는 발표 안 하기인데 뭔가 나만 남아서 내가 모든걸 다 할 것만 같은 불길한 예감..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주말에 qcc 문제도 정리하고.. 데이터 전처리도 하고.. 이력서도 내야지... ㅜㅜ&lt;/p&gt;</description>
      <category>내일배움캠프/TIL</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/183</guid>
      <comments>https://notes1365.tistory.com/183#entry183comment</comments>
      <pubDate>Fri, 14 Mar 2025 20:46:07 +0900</pubDate>
    </item>
    <item>
      <title>SQL | QCC 6회차</title>
      <link>https://notes1365.tistory.com/182</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 &lt;b&gt;성별(GENDER) 기준&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시험 점수가 높은 &lt;b&gt;상위 3명&lt;/b&gt;의 학생 성별, 이름과 점수를 반환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 학생이 동점일 경우, &lt;b&gt;나이가 많은 학생을 우선&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 성별(GENDER) 오름차순, 순위 오름차순으로 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 쓴 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952117312&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH a AS(
	SELECT
		GENDER,
		NAME,
		SCORE,
		DENSE_RANK () over (partition by gender order by score desc, age desc) as rnk
	FROM students)
SELECT GENDER, NAME, SCORE
FROM a
WHERE rnk &amp;lt;=3
ORDER BY GENDER, rnk ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952176179&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH student_ranks AS (
	SELECT *, RANK() OVER (PARTITION BY gender ORDER BY score DESC, age DESC) student_rank 
	FROM students 
)
SELECT GENDER, NAME, SCORE
FROM student_ranks
WHERE student_rank &amp;lt;= 3
ORDER BY gender, student_rank;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도서 제목(TITLE)과 다음 정보를 반환하는 SQL 쿼리를 작성하세요 :&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;미결제 금액 (DUE)&lt;/b&gt;: 아직 결제되지 않은 총 금액
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계산 기준 : PAID_DATE 가 NULL인 주문 항목의 총 금액 합계&lt;/li&gt;
&lt;li&gt;결과는 반올림하여 정수로 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결제 완료 금액 (PAID)&lt;/b&gt;: 결제 완료된 총 금액
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계산 기준 : PAID_DATE 가 NULL이 아닌 주문 항목의 총 금액 합계&lt;/li&gt;
&lt;li&gt;결과는 반올림하여 정수로 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 도서 제목(TITLE)을 기준으로 오름차순 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 시도한 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952273894&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH a AS
	(SELECT 
		b.TITLE,
		bo.PAID_DATE ,
		boi.QUANTITY , boi.line_total
	FROM books b 
		LEFT JOIN book_order_items boi ON b.ID = boi.BOOK_ID
		LEFT JOIN book_orders bo ON bo.ID = boi.ORDER_ID)
SELECT 
	TITLE,
	ROUND(CASE WHEN PAID_DATE IS NULL THEN SUM(line_total)
		 ELSE 0 END) AS DUE,
	ROUND(CASE WHEN PAID_DATE IS NOT NULL THEN SUM(line_total)
		 ELSE 0 END) AS PAID
FROM a
GROUP BY 1
ORDER BY 1 ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  애초에 빈칸이라 최종에 null 값이 뜨는걸 해결 못함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952303971&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 
    b.TITLE,
    ROUND(COALESCE(SUM((o.PAID_DATE IS NULL) * oi.LINE_TOTAL), 0), 0) AS DUE,
    ROUND(COALESCE(SUM((o.PAID_DATE IS NOT NULL) * oi.LINE_TOTAL), 0), 0) AS PAID
FROM books b
LEFT JOIN book_order_items oi ON b.ID = oi.BOOK_ID
LEFT JOIN book_orders o ON oi.ORDER_ID = o.ID
GROUP BY b.ID, b.TITLE
ORDER BY b.TITLE ASC;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고객의 &lt;b&gt;첫 주문 월&lt;/b&gt;을 기준 Cohort 그룹 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 Cohort 그룹에서 시간이 지남에 따라 &lt;b&gt;활성 사용자 수&lt;/b&gt;를 계산.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;USER_COUNT_1_MONTH_LATER ~ USER_COUNT_12_MONTH_LATER&lt;/b&gt; 까지 계산&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 Cohort 그룹에 대해 &lt;b&gt;1개월 후부터 12개월 후까지&lt;/b&gt;의 활성 사용자 수를 추적&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 시도한 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952508296&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH a AS(
	SELECT 
		DATE_FORMAT(ORDER_DATE,'%Y-%m')  AS FIRST_ORDER_MONTH,
		ROW_NUMBER() OVER (PARTITION BY CUSTOMER_ID ORDER BY ORDER_DATE) AS num
	FROM customer_orders co)
SELECT 
	FIRST_ORDER_MONTH,
	COUNT(num) AS COHORT_USER_COUNT
FROM a
where num = 1
GROUP BY 1
oRDER BY 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  활성 사용자 수까지는 시간도 없고 머리도 안 돌아가서 첫 주문 월 만드려고 노력했지만 실패&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741952529150&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH cohort AS (
    SELECT
        CUSTOMER_ID,
        DATE(DATE_FORMAT(MIN(ORDER_DATE), '%Y-%m-01')) AS first_order_month
    FROM customer_orders
    GROUP BY CUSTOMER_ID
), active_orders AS (
    SELECT
        o.CUSTOMER_ID,
        c.first_order_month,
        DATE(DATE_FORMAT(o.ORDER_DATE, '%Y-%m-01')) AS active_month
    FROM customer_orders o
    JOIN cohort c
        ON o.CUSTOMER_ID = c.CUSTOMER_ID
), cohort_counts AS (
    SELECT
        first_order_month,
        active_month,
        COUNT(DISTINCT CUSTOMER_ID) AS user_count
    FROM active_orders
    GROUP BY first_order_month, active_month
)
SELECT
    DATE_FORMAT(first_order_month, '%Y-%m') FIRST_ORDER_MONTH,
    COALESCE(SUM(CASE WHEN active_month = first_order_month THEN user_count ELSE 0 END), 0) AS COHORT_USER_COUNT,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 1 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_1_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 2 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_2_MONTH_LATER, 
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 3 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_3_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 4 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_4_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 5 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_5_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 6 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_6_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 7 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_7_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 8 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_8_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 9 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_9_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 10 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_10_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 11 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_11_MONTH_LATER,
    COALESCE(SUM(CASE WHEN active_month = DATE_ADD(first_order_month, INTERVAL 12 MONTH) THEN user_count ELSE 0 END), 0) AS USER_COUNT_12_MONTH_LATER
FROM cohort_counts
GROUP BY first_order_month
ORDER BY first_order_month;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SQL/문제</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/182</guid>
      <comments>https://notes1365.tistory.com/182#entry182comment</comments>
      <pubDate>Fri, 14 Mar 2025 20:43:51 +0900</pubDate>
    </item>
    <item>
      <title>TIL 25.2.28</title>
      <link>https://notes1365.tistory.com/181</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/180&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.02.28 - [SQL/문제] - SQL | QCC 5회차&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1740744262861&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;SQL | QCC 5회차&quot; data-og-description=&quot;1번2012년 이후 개봉한 영화장르 2개 이상 포함된 영화의 연도별 매출최소 100개 이상의 평점 수를 받은 경우만결과는 개봉 연도를 기준으로 오름차 정렬+) 힌트 : JSON_LENGTH(*) 함수&amp;nbsp;내가 쓴 답 :&amp;nbsp;SEL&quot; data-og-host=&quot;notes1365.tistory.com&quot; data-og-source-url=&quot;https://notes1365.tistory.com/180&quot; data-og-url=&quot;https://notes1365.tistory.com/180&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBKbtA/hyYmQczpCw/ztqo4kRHJockI2M4VsI2Uk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cwvEvs/hyYmVdSx6D/0VWVBaOUscE3T7OLa8Bp1K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/180&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://notes1365.tistory.com/180&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBKbtA/hyYmQczpCw/ztqo4kRHJockI2M4VsI2Uk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cwvEvs/hyYmVdSx6D/0VWVBaOUscE3T7OLa8Bp1K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SQL | QCC 5회차&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1번2012년 이후 개봉한 영화장르 2개 이상 포함된 영화의 연도별 매출최소 100개 이상의 평점 수를 받은 경우만결과는 개봉 연도를 기준으로 오름차 정렬+) 힌트 : JSON_LENGTH(*) 함수&amp;nbsp;내가 쓴 답 :&amp;nbsp;SEL&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;notes1365.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2주 만에 TIL.. ^^&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;QCC도 오랜만에 하고 SQL도 오랜만이라 살짝 긴장했는데 처음으로 다 풀어서 아주 기분이 좋다~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 최종 프로젝트 아직도 못정해서.. 고민만땅&lt;/p&gt;</description>
      <category>내일배움캠프/TIL</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/181</guid>
      <comments>https://notes1365.tistory.com/181#entry181comment</comments>
      <pubDate>Fri, 28 Feb 2025 21:05:37 +0900</pubDate>
    </item>
    <item>
      <title>SQL | QCC 5회차</title>
      <link>https://notes1365.tistory.com/180</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;2012년 이후 개봉&lt;/span&gt;한 영화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;2&quot;&gt;장르 2개 이상&lt;/span&gt; 포함된 영화의 연도별 매출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최소&lt;span data-token-index=&quot;4&quot;&gt; 100개 이상의 평점 수&lt;/span&gt;를 받은 경우만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 &lt;span data-token-index=&quot;6&quot;&gt;개봉 연도&lt;/span&gt;를 기준으로 오름차 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+) 힌트 : &lt;span style=&quot;background-color: #ffffff; color: #eb5757;&quot; data-token-index=&quot;1&quot;&gt;JSON_LENGTH(*) &lt;/span&gt;함수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 쓴 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740743376608&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT release_year, SUM(revenue) AS revenue
FROM movies
WHERE JSON_LENGTH(genres) &amp;gt;=2 AND release_year &amp;gt;=2012 AND vote_count &amp;gt;=100
GROUP BY release_year 
ORDER BY release_year ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740743457373&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT release_year, sum(revenue) revenue
FROM movies 
WHERE json_length(genres) &amp;gt;= 2
AND vote_count &amp;gt;= 100
AND release_year &amp;gt;= 2012
GROUP BY release_year
ORDER BY release_year;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 고객의 총 결제 금액(TotalDue)을 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결제 금액을 기준으로 순위, 결제 금액이 같은 고객은 같은 순위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 &lt;span data-token-index=&quot;1&quot;&gt;결제 금액이 높은 순으로 내림차&lt;/span&gt; 정렬, &lt;span data-token-index=&quot;3&quot;&gt;동일한 금액일 경우 고객 ID 기준으로 오름차 &lt;/span&gt;정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 5순위의 고객 정보를 반환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 결제 금액이 동일한 고객은 같은 순위를 가져야 하며, 순위는 건너뛰지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 쓴 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740743635023&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1) 고객 별 총 결제 금액 조회

SELECT 
	customer_id as CustomerID,
	sum(total_due) as TotalOrderAmount
FROM 
	sales_order_header
	GROUP BY customer_id ;
    
    
# 2) 총 결제 금액 순위 매기기 (순위 건너뛰면 안되니까 dense_rank)

WITH a AS(
	SELECT 
		customer_id as CustomerID,
		sum(total_due) as TotalOrderAmount
	FROM 
		sales_order_header
	GROUP BY customer_id),
SELECT 
	CustomerID,
	TotalOrderAmount,
	DENSE_RANK() OVER (ORDER BY TotalOrderAmount DESC)	AS rn
FROM a


# 3) 상위 5위만 조회

WITH a AS(
	SELECT 
		customer_id as CustomerID,
		sum(total_due) as TotalOrderAmount
	FROM 
	sales_order_header
	GROUP BY customer_id),
b AS (SELECT 
	CustomerID,
	TotalOrderAmount,
	DENSE_RANK() OVER (ORDER BY TotalOrderAmount DESC)	AS rn
FROM a)
SELECT * 
FROM b 
WHERE rn&amp;lt;=5 
ORDER BY TotalOrderAmount DESC, CustomerID ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740743924987&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH customer_totals AS (
    SELECT 
        customer_id,
        SUM(total_due) AS TotalOrderAmount
    FROM sales_order_header
    GROUP BY customer_id
), customer_ranks AS (
	SELECT 
	    customer_id,
	    TotalOrderAmount,
	    DENSE_RANK() OVER (ORDER BY TotalOrderAmount DESC) AS rn
	FROM customer_totals
)
SELECT *
FROM customer_ranks
WHERE rn &amp;lt;= 5
ORDER BY TotalOrderAmount desc, customer_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3번&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;멤버십 상태 (&lt;/b&gt;status&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JOIN - 가입 이벤트는 고객의 멤버십 상태를 ACTIVE 상태로 변환&lt;/li&gt;
&lt;li&gt;WITHDRAW - 해지 이벤트는 고객의 멤버십 상태를 INACTIVE 상태로 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기간 설정 (&lt;/b&gt;start_date&lt;b&gt;,&lt;/b&gt; end_date&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;start_date는 이벤트 발생 날짜(event_date)로 설정&lt;/li&gt;
&lt;li&gt;end_date는 다음 이벤트의 event_date의 전날로 설정&lt;/li&gt;
&lt;li&gt;가장 최신 상태는 end_date가 NULL&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활성 상태 플래그&lt;/b&gt; (current_flag)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 멤버십 상태가 ACTIVE 이면서 상태가 활성(end_date is NULL)인 경우 current_flag를 1로 설정&lt;/li&gt;
&lt;li&gt;비활성 상태는 current_flag를 0으로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정렬&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;결과는 customer_id와 start_date를 기준으로 오름차순 정렬&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+) 힌트 : &lt;span style=&quot;background-color: #ffffff; color: #eb5757;&quot; data-token-index=&quot;1&quot;&gt;DATE_ADD()/DATE_SUB()&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 쓴 답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740744169769&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1) 컬럼 생성

SELECT 
	customer_id,
	CASE WHEN event_type ='JOIN' THEN 'ACTIVE' ELSE 'INACTIVE' END AS status,
    event_date AS start_date,
	DATE_SUB(LEAD(event_date) OVER (PARTITION BY customer_id ORDER BY event_date), INTERVAL 1 day) AS end_date
FROM membership_history

# 2) 활성 상태 컬럼 생성

WITH a AS(
	SELECT 
		customer_id,
		CASE WHEN event_type ='JOIN' THEN 'ACTIVE' ELSE 'INACTIVE' END AS status,
		event_date AS start_date,
		DATE_SUB(LEAD(event_date) OVER (PARTITION BY customer_id ORDER BY event_date), INTERVAL 1 day) AS end_date
	FROM membership_history)
SELECT 
	*,
	CASE WHEN status = 'ACTIVE' AND end_date IS NULL THEN 1 ELSE 0 END AS current_flag
FROM a
ORDER BY customer_id, start_date ;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;정답 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740744191486&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH ranked_events AS (
	SELECT 
		customer_id,
		CASE 
			WHEN event_type = 'JOIN' THEN 'ACTIVE'
			WHEN event_type = 'WITHDRAW' THEN 'INACTIVE'
		END AS status,
		event_date AS start_date,
		LEAD(event_date) OVER (PARTITION BY customer_id ORDER BY event_date) AS next_event_date
	FROM membership_history
)
SELECT 
	customer_id,
	status,
	start_date,
	DATE_SUB(next_event_date, INTERVAL 1 DAY) AS end_date,
	CASE 
		WHEN status = 'ACTIVE' AND next_event_date IS NULL THEN 1
		ELSE 0
	END AS current_flag
FROM ranked_events
ORDER BY customer_id, start_date;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SQL/문제</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/180</guid>
      <comments>https://notes1365.tistory.com/180#entry180comment</comments>
      <pubDate>Fri, 28 Feb 2025 21:03:22 +0900</pubDate>
    </item>
    <item>
      <title>TIL 25.2.13</title>
      <link>https://notes1365.tistory.com/179</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 자격증 공부가 너무 재미없음&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결과정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이론 공부 지루해서 그냥 바로 문제를 풀어보려고 함&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결완료&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 그나마 문제 풀면서 정리하니까 덜 지루함&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;새롭게 알게 된 점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 내가 이렇게 집중력이 안 좋았나 싶음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이론 공부만 무작정 하지 말고 요약본, 요약영상 잘 되어 있으니까 많이 활용하기&lt;/p&gt;</description>
      <category>내일배움캠프/TIL</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/179</guid>
      <comments>https://notes1365.tistory.com/179#entry179comment</comments>
      <pubDate>Thu, 13 Feb 2025 20:20:47 +0900</pubDate>
    </item>
    <item>
      <title>TIL 25.2.12</title>
      <link>https://notes1365.tistory.com/178</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 태블로 라이브 세션 2회차 때 시간 부족으로 못한 실습 두 개를 예습해봄&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span data-token-index=&quot;0&quot;&gt;- Retention 실습 그래프가 완전 이상하게 나옴&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYAA1H/btsMglciitn/stQMdiJrouklweMYZB7LYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYAA1H/btsMglciitn/stQMdiJrouklweMYZB7LYK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;820&quot; data-filename=&quot;스크린샷 2025-02-12 오후 4.28.26.png&quot; style=&quot;width: 25.9741%; margin-right: 10px;&quot; data-widthpercent=&quot;26.59&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYAA1H/btsMglciitn/stQMdiJrouklweMYZB7LYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYAA1H%2FbtsMglciitn%2FstQMdiJrouklweMYZB7LYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1334&quot; height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Iqygx/btsMfYIpIPf/XnGiMkGIEpLCzisBctIS3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Iqygx/btsMfYIpIPf/XnGiMkGIEpLCzisBctIS3k/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2152&quot; data-origin-height=&quot;992&quot; data-filename=&quot;스크린샷 2025-02-12 오후 4.28.53.png&quot; style=&quot;width: 34.6361%; margin-right: 10px;&quot; data-widthpercent=&quot;35.46&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Iqygx/btsMfYIpIPf/XnGiMkGIEpLCzisBctIS3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIqygx%2FbtsMfYIpIPf%2FXnGiMkGIEpLCzisBctIS3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2152&quot; height=&quot;992&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7kTdX/btsMfY2FZYF/3ceTKVtSsyw4Oek7IKcqQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7kTdX/btsMfY2FZYF/3ceTKVtSsyw4Oek7IKcqQk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1820&quot; data-origin-height=&quot;784&quot; data-filename=&quot;스크린샷 2025-02-12 오후 4.29.20.png&quot; style=&quot;width: 37.0642%;&quot; data-widthpercent=&quot;37.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7kTdX/btsMfY2FZYF/3ceTKVtSsyw4Oek7IKcqQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7kTdX%2FbtsMfY2FZYF%2F3ceTKVtSsyw4Oek7IKcqQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1820&quot; height=&quot;784&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;정답과 이상한 나의 오답.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결과정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일단 다시 천천히 알려주신 정답? 으로 했는데 저 모양&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 뭔가 다른 조건이 있나 모르겠음&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결완료&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 해결 못함! 아마 내일 라이브 세션 때 해결될듯..&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;새롭게&lt;span&gt; &lt;/span&gt;알게&lt;span&gt; &lt;/span&gt;된&lt;span&gt; &lt;/span&gt;점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 확실히 sql, 파이썬, 머신러닝 등 처음 배울 때 굉장히 어렵고 힘들었던 것에 비해 태블로는 슥슥 하면서 뚝딱 완성이 되는 듯 해서 상대적으로 쉽게 느껴짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하지만 상대적으로 쉽게 느껴지는거지 쉬운건 아닌 것을 다시 한 번 느끼게 됨..^^&lt;/p&gt;</description>
      <category>내일배움캠프/TIL</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/178</guid>
      <comments>https://notes1365.tistory.com/178#entry178comment</comments>
      <pubDate>Thu, 13 Feb 2025 10:53:56 +0900</pubDate>
    </item>
    <item>
      <title>데이터 시각화 101: 데이터 시각화는 왜 중요할까?</title>
      <link>https://notes1365.tistory.com/177</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/1750/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yozm.wishket.com/magazine/detail/1750/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739235571308&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;데이터 시각화 101: 1 데이터 시각화는 왜 중요할까? | 요즘IT&quot; data-og-description=&quot;데이터의 양이 늘어나고 복잡해질 수록 데이터를 좀 더 쉽게 이해하고 인사이트를 발견하는 것의 필요성이 높아지고 있는데요. 데이터 시각화란 말 그대로 데이터에서 발견한 정보를 시각적으&quot; data-og-host=&quot;yozm.wishket.com&quot; data-og-source-url=&quot;https://yozm.wishket.com/magazine/detail/1750/&quot; data-og-url=&quot;https://yozm.wishket.com/magazine/detail/1750/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pn9IL/hyYb8eUyts/zBjUVBAV0scKcxZRVA0acK/img.png?width=2000&amp;amp;height=1322&amp;amp;face=0_0_2000_1322,https://scrap.kakaocdn.net/dn/7JrT3/hyYfVya0hJ/2qvnQKKDDJuJXjZ3t8hJ21/img.png?width=2000&amp;amp;height=1322&amp;amp;face=0_0_2000_1322,https://scrap.kakaocdn.net/dn/hsERM/hyYcfyj48I/RDnppRLs4TVsfLe8UlgYRK/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/1750/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yozm.wishket.com/magazine/detail/1750/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pn9IL/hyYb8eUyts/zBjUVBAV0scKcxZRVA0acK/img.png?width=2000&amp;amp;height=1322&amp;amp;face=0_0_2000_1322,https://scrap.kakaocdn.net/dn/7JrT3/hyYfVya0hJ/2qvnQKKDDJuJXjZ3t8hJ21/img.png?width=2000&amp;amp;height=1322&amp;amp;face=0_0_2000_1322,https://scrap.kakaocdn.net/dn/hsERM/hyYcfyj48I/RDnppRLs4TVsfLe8UlgYRK/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;데이터 시각화 101: 1 데이터 시각화는 왜 중요할까? | 요즘IT&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;데이터의 양이 늘어나고 복잡해질 수록 데이터를 좀 더 쉽게 이해하고 인사이트를 발견하는 것의 필요성이 높아지고 있는데요. 데이터 시각화란 말 그대로 데이터에서 발견한 정보를 시각적으&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yozm.wishket.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;데이터&amp;nbsp;시각화&amp;nbsp;101:&amp;nbsp;데이터&amp;nbsp;시각화는&amp;nbsp;왜&amp;nbsp;중요할까?&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;요약&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우리 주변의 데이터 시각화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;교통 정보 경로 표시
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 노선을 색으로 구별&lt;/li&gt;
&lt;li&gt;소요 시간에 맞게 바 길이 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;태풍 예상 이동 경&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;시각 정보의 중요성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우리가 인식하는 부분에 비해 훨씬 많은 양의 정보를 시각을 통해 처리&lt;/li&gt;
&lt;li&gt;그래픽은 텍스트에 비해 60,000배 빠르게 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;의사 결정에 도움을 준다&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;많은 양의 데이터와 정보를 담을 수 있음&lt;/li&gt;
&lt;li&gt;데이터 내 정보를 쉽게 찾고 이해할 수 있음&lt;/li&gt;
&lt;li&gt;우리 뇌는 시각화 정보를 처리하는데 탁월해 복잡한 데이터를 이해하는데 도움이 됨&lt;/li&gt;
&lt;li&gt;주제에 대한 관심을 끌고 집중을 오래 유지할 수 있음 &amp;rarr; 생소하거나 관심이 적은 주제를 다룰 때 도움&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;인사이트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 일상에서 흔히 사용하는 지도 앱이 데이터 시각화의 예시라는 점에 대해 새롭게 인식하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시각이 다른 감각에 비해 빠르고 많은 양의 정보를 처리한다는 사실을 알고 있었지만 그 차이를 시각화된 정보를 통해 더욱 확실하게 알 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공통 인사이트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 데이터 기반 스토리 텔링을 위한 도구이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 단순히 데이터를 보여주는 것이 아니라, 의미 있는 메시지를 전달하는 것이 핵심이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 데이터를 해석하는 능력이 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 도구를 다루는 것보다 중요한 것은 데이터에서 의미를 찾고 인사이트를 도출하는 능력이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 좋은 시각화는 심플하지만 강력한 메시지를 전달한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 복잡한 그래프보다 명확하고 직관적인 시각화가 효과적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 비즈니스에서 데이터 시각화는 필수 스킬이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터를 빠르게 분석하고 전달할 수 있는 능력은 경쟁력이 될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 시각화는 단순한 그래프 제작이 아니라, 데이터를 효과적으로 전달하는 강력한 도구이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 시각화는 명확성, 정확성, 간결성, 스토리텔링 요소를 갖춰야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 도구를 배우는 것이 아니라 데이터에서 인사이트를 도출하는 능력을 키우는 것이 중요하다.&lt;/p&gt;</description>
      <category>아티클스터디</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/177</guid>
      <comments>https://notes1365.tistory.com/177#entry177comment</comments>
      <pubDate>Tue, 11 Feb 2025 10:05:03 +0900</pubDate>
    </item>
    <item>
      <title>TIL 25.2.10</title>
      <link>https://notes1365.tistory.com/176</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/175&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.02.10 - [태블로] - 태블로 | 도넛 차트 만들기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739187003275&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;태블로 | 도넛 차트 만들기&quot; data-og-description=&quot;데이터 : https://www.kaggle.com/competitions/ga-customer-revenue-prediction/data?select=train.csv&amp;nbsp;Google Analytics Customer Revenue PredictionPredict how much GStore customers will spendwww.kaggle.com1. 열 더블클릭 1 입력 &amp;rarr; 우클릭 후 차&quot; data-og-host=&quot;notes1365.tistory.com&quot; data-og-source-url=&quot;https://notes1365.tistory.com/175&quot; data-og-url=&quot;https://notes1365.tistory.com/175&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yP8ex/hyYb8TsHF9/dVy6hgrJIjba3mi0xL42Ak/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/mSTo9/hyYfQwNJKG/NbHuKhCrSHphbcw6yF8Ne0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/NwGVj/hyYfSBnHFz/I1nJyANSjNtuaKBY0oHww0/img.png?width=1418&amp;amp;height=764&amp;amp;face=0_0_1418_764&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/175&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://notes1365.tistory.com/175&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yP8ex/hyYb8TsHF9/dVy6hgrJIjba3mi0xL42Ak/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/mSTo9/hyYfQwNJKG/NbHuKhCrSHphbcw6yF8Ne0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/NwGVj/hyYfSBnHFz/I1nJyANSjNtuaKBY0oHww0/img.png?width=1418&amp;amp;height=764&amp;amp;face=0_0_1418_764');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;태블로 | 도넛 차트 만들기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;데이터 : https://www.kaggle.com/competitions/ga-customer-revenue-prediction/data?select=train.csv&amp;nbsp;Google Analytics Customer Revenue PredictionPredict how much GStore customers will spendwww.kaggle.com1. 열 더블클릭 1 입력 &amp;rarr; 우클릭 후 차&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;notes1365.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/177&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.02.11 - [아티클스터디] - 데이터 시각화 101: 데이터 시각화는 왜 중요할까?&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739235924652&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;데이터 시각화 101: 데이터 시각화는 왜 중요할까?&quot; data-og-description=&quot;https://yozm.wishket.com/magazine/detail/1750/&amp;nbsp;데이터 시각화 101: 1 데이터 시각화는 왜 중요할까? | 요즘IT데이터의 양이 늘어나고 복잡해질 수록 데이터를 좀 더 쉽게 이해하고 인사이트를 발견하는 것의 &quot; data-og-host=&quot;notes1365.tistory.com&quot; data-og-source-url=&quot;https://notes1365.tistory.com/177&quot; data-og-url=&quot;https://notes1365.tistory.com/177&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ewnI7z/hyYfRWRpV3/TJqt5a6tJpbXh2WvMOEuMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/hgG4H/hyYccBB7LZ/yb92Qha5xsgwCbkU2L9n4K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://notes1365.tistory.com/177&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://notes1365.tistory.com/177&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ewnI7z/hyYfRWRpV3/TJqt5a6tJpbXh2WvMOEuMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/hgG4H/hyYccBB7LZ/yb92Qha5xsgwCbkU2L9n4K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;데이터 시각화 101: 데이터 시각화는 왜 중요할까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://yozm.wishket.com/magazine/detail/1750/&amp;nbsp;데이터 시각화 101: 1 데이터 시각화는 왜 중요할까? | 요즘IT데이터의 양이 늘어나고 복잡해질 수록 데이터를 좀 더 쉽게 이해하고 인사이트를 발견하는 것의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;notes1365.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 대시보드 제작하는 과정에서 내가 만든 첫 대시보드가 너무 못생김&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결과정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 대충 어느 정도 완성하고 해설 강의 들으면서 다듬음..&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결완료&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 해설 강의랑 비슷하게 완료함&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;새롭게&lt;span&gt; &lt;/span&gt;알게&lt;span&gt; &lt;/span&gt;된&lt;span&gt; &lt;/span&gt;점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 다들 태블로는 가벼운 마음으로 들어~ 라고는 했지만 막상 해보니까 그래도 어느 정도 감은 익혀놔야 제대로 깔끔하게 시각화를 할 수 있겠구나 생각함&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번주 또 바로 프로젝트.. 화이팅.. 한명 너무 걱정.. 나머지 한 분은 마이크를 못켜서 소통이 걱정.. 벌써 걱정 한가득&lt;/p&gt;</description>
      <category>내일배움캠프/TIL</category>
      <author>jjangdoll</author>
      <guid isPermaLink="true">https://notes1365.tistory.com/176</guid>
      <comments>https://notes1365.tistory.com/176#entry176comment</comments>
      <pubDate>Mon, 10 Feb 2025 20:32:59 +0900</pubDate>
    </item>
  </channel>
</rss>