<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발괴발 일지</title>
    <link>https://4d-why.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 17 Aug 2026 09:59:52 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>4d.why</managingEditor>
    <image>
      <title>개발괴발 일지</title>
      <url>https://tistory1.daumcdn.net/tistory/4669314/attach/d48636a1adfe45a39b80045e13579297</url>
      <link>https://4d-why.tistory.com</link>
    </image>
    <item>
      <title>자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기</title>
      <link>https://4d-why.tistory.com/80</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;CAR_RENTAL_COMPANY_RENTAL_HISTORY&amp;nbsp;테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명:&amp;nbsp;AVAILABILITY)을 추가하여 자동차 ID와&amp;nbsp;AVAILABILITY&amp;nbsp;리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1h3p7/btsn7LTf7Jr/KmuHqK0vfiOPk3IMxqFgo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1h3p7/btsn7LTf7Jr/KmuHqK0vfiOPk3IMxqFgo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1h3p7/btsn7LTf7Jr/KmuHqK0vfiOPk3IMxqFgo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1h3p7%2Fbtsn7LTf7Jr%2FKmuHqK0vfiOPk3IMxqFgo1%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;335&quot; height=&quot;335&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CAR_RENTAL_COMPANY_RENTAL_HISTORY&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HISTORY_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAR_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;START_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;END_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL .ver&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
        A.CAR_ID
        ,CASE
            WHEN B.AVAILABILITY_CD = '01' THEN '대여중'
            ELSE '대여 가능'
        END AS AVAILABILITY
FROM (
    SELECT
            CAR_ID
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    GROUP BY CAR_ID
) A 
LEFT JOIN (
    SELECT
            CAR_ID
            ,'01' AS AVAILABILITY_CD
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE 1=1
    AND   TO_DATE('2022-10-16', 'YYYY-MM-DD') BETWEEN START_DATE AND END_DATE
    GROUP BY CAR_ID
) B ON (B.CAR_ID = A.CAR_ID)
ORDER BY CAR_ID DESC
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE .ver&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
        A.CAR_ID
        ,CASE
            WHEN B.AVAILABILITY_CD = '01' THEN '대여중'
            ELSE '대여 가능'
        END AS AVAILABILITY
FROM (
    SELECT
            CAR_ID
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    GROUP BY CAR_ID
) A 
LEFT JOIN (
    SELECT
            CAR_ID
            ,'01' AS AVAILABILITY_CD
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE 1=1
    AND   '2022-10-16' BETWEEN START_DATE AND END_DATE
    GROUP BY CAR_ID
) B ON (B.CAR_ID = A.CAR_ID)
ORDER BY CAR_ID DESC
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&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;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1) 2021-10-16일에 대여중인 CAR_ID 목록 구함&lt;br /&gt;2) LEFT JOIN을 이용하여 대여중인 렌탈차 목록과 비교하여 대여중/대여 가능 계산&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 사람의 신박했던 답안1&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;SUM() 함수를 사용 &lt;br /&gt;&amp;rArr; 2021-10-16일에 대여중인 CAR_ID는 값이 0보다 커짐. 이를 이용하여 대여중을 구분&lt;/blockquote&gt;
&lt;pre id=&quot;code_1689695647198&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;--MYSQL 
SELECT CAR_ID, 
		CASE WHEN SUM(IF('2022-10-16' BETWEEN START_DATE AND END_DATE, 1, 0)) = 0 THEN &quot;대여 가능&quot; 
        ELSE &quot;대여중&quot; 
        END AS AVAILABILITY 
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
GROUP BY CAR_ID 
ORDER BY CAR_ID DESC 

-- ORACLE 
SELECT CAR_ID, CASE WHEN AP = 0 THEN '대여 가능' ELSE '대여중' END AS AVAILABILITY 
FROM (
	SELECT 
    	CAR_ID, 
        SUM(CASE 
        	WHEN TO_DATE('2022-10-16', 'YYYY-MM-DD') BETWEEN START_DATE AND END_DATE THEN 1 
            ELSE 0 
            END) AS AP 
     FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
     GROUP BY CAR_ID 
) 
ORDER BY CAR_ID DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 사람의 신박했던 답안2&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MAX()함수 사용 &lt;br /&gt;&amp;rArr; 한글을 비교할 경우 자음&amp;lt;모음&amp;lt;한글로 커짐을 이용. 대여중 &amp;gt; 대여 가능이기 때문에 가능함&lt;/blockquote&gt;
&lt;pre id=&quot;code_1689695796335&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 
	CAR_ID, 
    MAX(AVAILABILITY) AS AVAILABILITY 
FROM ( 
    	SELECT 
        	CAR_ID, 
            CASE 
            	WHEN START_DATE &amp;lt;= TO_DATE('20221016','YYYYMMDD') AND END_DATE &amp;gt;= TO_DATE('20221016','YYYYMMDD') THEN '대여중' 
                ELSE '대여 가능' 
                END AS &quot;AVAILABILITY&quot;, 
                START_DATE, 
                END_DATE 
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY) 
GROUP BY CAR_ID ORDER BY CAR_ID DESC;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://9566.tistory.com/487&quot;&gt;[SQL 프로그래머스 GROUP BY] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(ORACLE, MYSQL)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/questions/49962&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/questions/49962&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@tjtjtjtj0123/MSSQL-MAX-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B9%84%EA%B5%90&quot;&gt;MSSQL MAX 문자열 비교&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>group_by</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/80</guid>
      <comments>https://4d-why.tistory.com/80#entry80comment</comments>
      <pubDate>Thu, 20 Jul 2023 20:01:52 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 조건에 맞는 사용자와 총 거래금액 조회하기</title>
      <link>https://4d-why.tistory.com/79</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;USED_GOODS_BOARD와&amp;nbsp;USED_GOODS_USER&amp;nbsp;테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXVrVS/btsnZYLJNap/5576hJZSUrpeaMKsKm4DGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXVrVS/btsnZYLJNap/5576hJZSUrpeaMKsKm4DGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXVrVS/btsnZYLJNap/5576hJZSUrpeaMKsKm4DGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXVrVS%2FbtsnZYLJNap%2F5576hJZSUrpeaMKsKm4DGk%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중고거래 게시판 정보 (USED_GOODS_BOARD)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BOARD_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(5)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WRITER_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(50)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TITLE&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CONTENTS&lt;/td&gt;
&lt;td&gt;VARCHAR(1000)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PRICE&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CREATED_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STATUS&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VIEWS&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;li&gt;중고거래 회원 정보 (USED_GOODS_USER)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;USER_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(50)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NICKANME&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CITY&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STREET_ADDRESS1&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STREET_ADDRESS2&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;TRUE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLNO&lt;/td&gt;
&lt;td&gt;VARCHAR(20)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
    B.USER_ID
    ,B.NICKNAME
    ,A.SUM_PRICE AS TOTAL_SALES
FROM (
SELECT
        Z.WRITER_ID
        ,SUM(Z.PRICE) AS SUM_PRICE
FROM USED_GOODS_BOARD Z
WHERE 1=1
AND   Z.STATUS = 'DONE'
GROUP BY WRITER_ID
) A
LEFT JOIN USED_GOODS_USER B ON (B.USER_ID = A.WRITER_ID)
WHERE 1=1
AND   A.SUM_PRICE &amp;gt;= 700000
ORDER BY A.SUM_PRICE
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
    B.USER_ID
    ,B.NICKNAME
    ,A.SUM_PRICE AS TOTAL_SALES
FROM (
SELECT
        Z.WRITER_ID
        ,SUM(Z.PRICE) AS SUM_PRICE
FROM USED_GOODS_BOARD Z
WHERE 1=1
AND   Z.STATUS = 'DONE'
GROUP BY WRITER_ID
) A
LEFT JOIN USED_GOODS_USER B ON (B.USER_ID = A.WRITER_ID)
WHERE 1=1
AND   A.SUM_PRICE &amp;gt;= 700000
ORDER BY A.SUM_PRICE
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;WHERE VS HAVING&lt;/b&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WHERE&lt;/td&gt;
&lt;td&gt;HAVING&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테이블에서 직접 데이터 필터링&lt;/td&gt;
&lt;td&gt;테이블에서 생성된 그룹 데이터를 필터링&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;행 연산&lt;/td&gt;
&lt;td&gt;열 연산&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;조건에 따라 필터링된 데이터만 조회&lt;/td&gt;
&lt;td&gt;필터 조건을 적용하기 전에 모든 데이터 조회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WHERE절에 집계 함수 사용 불가&lt;/td&gt;
&lt;td&gt;HAVING절에 집계 함수 사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SELECT, UPDATE, DELETE문에 사용 가능&lt;/td&gt;
&lt;td&gt;SELECT문에만 사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GROUP BY절 필요X&lt;/td&gt;
&lt;td&gt;GROUP BY 절 필수&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.sqlshack.com/the-difference-between-where-and-having-clause-in-sql/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.sqlshack.com/the-difference-between-where-and-having-clause-in-sql/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>having</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>where</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/79</guid>
      <comments>https://4d-why.tistory.com/79#entry79comment</comments>
      <pubDate>Wed, 19 Jul 2023 20:06:18 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 조건에 맞는 사용자 정보 조회하기</title>
      <link>https://4d-why.tistory.com/78</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;USED_GOODS_BOARD와&amp;nbsp;USED_GOODS_USER&amp;nbsp;테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(- )을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/svJhr/btsnF7WWg67/2kG0ZMcPHA6B72zFpotmF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/svJhr/btsnF7WWg67/2kG0ZMcPHA6B72zFpotmF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/svJhr/btsnF7WWg67/2kG0ZMcPHA6B72zFpotmF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsvJhr%2FbtsnF7WWg67%2F2kG0ZMcPHA6B72zFpotmF0%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중고거래 게시판 정보 (USED_GOODS_BOARD)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BOARD_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(5)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WRITER_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(50)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TITLE&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CONTENTS&lt;/td&gt;
&lt;td&gt;VARCHAR(1000)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PRICE&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CREATED_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STATUS&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VIEWS&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;li&gt;중고거래 사용자 정보 (USED_GOODS_USER)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;USER_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(50)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NICKANME&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CITY&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STREET_ADDRESS1&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STREET_ADDRESS2&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;TRUE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLNO&lt;/td&gt;
&lt;td&gt;VARCHAR(20)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
        WRITER_ID
        , NICKNAME
        , CONCAT(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) AS '전체주소'
        , CONCAT(SUBSTR(TLNO, 1, 3), '-', SUBSTR(TLNO, 4, 4), '-', SUBSTR(TLNO, 8, 4)) AS '전화번호'
FROM (
        SELECT
                WRITER_ID
                , COUNT(*) AS WRITE_CNT
        FROM USED_GOODS_BOARD Z
        GROUP BY WRITER_ID
) A
LEFT JOIN USED_GOODS_USER B ON (B.USER_ID = A.WRITER_ID)
WHERE 1=1
AND   A.WRITE_CNT &amp;gt;= 3
ORDER BY B.USER_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
        WRITER_ID
        , NICKNAME
        , CITY ||' '||STREET_ADDRESS1||' '||STREET_ADDRESS2 AS &quot;전체주소&quot;
        , SUBSTR(TLNO, 1, 3) || '-' || SUBSTR(TLNO, 4, 4) || '-' || SUBSTR(TLNO, 8, 4) AS &quot;전화번호&quot;
FROM (
        SELECT
                WRITER_ID
                , COUNT(*) AS WRITE_CNT
        FROM USED_GOODS_BOARD Z
        GROUP BY WRITER_ID
) A
LEFT JOIN USED_GOODS_USER B ON (B.USER_ID = A.WRITER_ID)
WHERE 1=1
AND   A.WRITE_CNT &amp;gt;= 3
ORDER BY B.USER_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열 추출 &amp;rArr; SUBSTR()&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;SUBSTR(STR, 시작IDX, 추출 갯수) : STR의 시작IDX부터 N개 추출&amp;nbsp;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시작IDX가 음수일 경우 &amp;rArr; 뒤에서부터 오른쪽으로 N개 추출&lt;/li&gt;
&lt;li&gt;추출 갯수가 없을 경우 &amp;rArr; 시작점부터 끝까지 추출&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gent.tistory.com/201&quot;&gt;[Oracle] SUBSTR, SUBSTRB 함수 사용법 (문자열 자르기)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>문자열추출</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/78</guid>
      <comments>https://4d-why.tistory.com/78#entry78comment</comments>
      <pubDate>Wed, 19 Jul 2023 19:33:50 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기</title>
      <link>https://4d-why.tistory.com/77</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;USED_GOODS_BOARD와&amp;nbsp;USED_GOODS_FILE&amp;nbsp;테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEvI3y/btsnIK72O98/2xqFKZvO0pU7OOlvNbnJ1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEvI3y/btsnIK72O98/2xqFKZvO0pU7OOlvNbnJ1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEvI3y/btsnIK72O98/2xqFKZvO0pU7OOlvNbnJ1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEvI3y%2FbtsnIK72O98%2F2xqFKZvO0pU7OOlvNbnJ1K%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중고거래 게시판 정보Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BOARD_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(5)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WRITER_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(50)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TITLE&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CONTENTS&lt;/td&gt;
&lt;td&gt;VARCHAR(1000)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PRICE&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CREATED_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STATUS&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VIEWS&lt;/td&gt;
&lt;td&gt;NUMBER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;li&gt;중고거래 게시판 첨부파일 정보Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FILE_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FILE_EXT&lt;/td&gt;
&lt;td&gt;VARCHAR(5)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FILE_NAME&lt;/td&gt;
&lt;td&gt;VARCHAR(256)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BOARD_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
        CONCAT('/home/grep/src/', A.BOARD_ID, '/', B.FILE_ID, B.FILE_NAME, B.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD A
LEFT JOIN USED_GOODS_FILE B ON (B.BOARD_ID = A.BOARD_ID)
WHERE A.VIEWS = (
        SELECT
                MAX(VIEWS)
        FROM USED_GOODS_BOARD Z
)
ORDER BY B.FILE_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE .ver&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
        '/home/grep/src/'||A.BOARD_ID||'/'||B.FILE_ID||B.FILE_NAME||B.FILE_EXT AS FILE_PATH
FROM USED_GOODS_BOARD A
LEFT JOIN USED_GOODS_FILE B ON (B.BOARD_ID = A.BOARD_ID)
WHERE A.VIEWS = (
        SELECT
                MAX(VIEWS)
        FROM USED_GOODS_BOARD Z
)
ORDER BY B.FILE_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;문자열 합치기&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;ORACLE &amp;rArr; CONCATE 또는 &amp;lsquo;||&amp;rsquo; 사용&amp;lsquo;STR1&amp;rsquo; || &amp;lsquo;STR2&amp;rsquo; || &amp;lsquo;STR3&amp;rsquo; || &amp;hellip; : STR1 + STR2 + STR3 + &amp;hellip;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CONCAT : 2개의 문자열만 합침 EX) CONCAT(CONCAT(STR1, STR2), STR3) : STR1 + STR2 + STR3&lt;/li&gt;
&lt;li&gt;&amp;lsquo;||&amp;rsquo; : 여러개의 문자열 합침&lt;/li&gt;
&lt;/ul&gt;
&amp;rArr; CONCAT()는 2개의 문자열만 합칠 수 있기 때문에 사용 편의성 떄문에 주로 &amp;lsquo;||&amp;rsquo;를 사용해서 합침&lt;/li&gt;
&lt;li&gt;CONCAT(STR1, STR2) : STR1 + STR2&lt;/li&gt;
&lt;li&gt;MYSQL &amp;rArr; CONCAT 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ORACLE과 달리 여러 문자열 합침 가능!&lt;/li&gt;
&lt;li&gt;NULL을 입력하면 &amp;lsquo;NULL&amp;rsquo;로 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CONCAT(STR1, STR2, STR3, &amp;hellip;) : STR1 + STR2 + STR3 + &amp;hellip;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MAX(), MIN()&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MAX(COL) : TABEL에서 MAX 값 &amp;rArr; MAX값의 행을 조회하진 않음!&lt;/li&gt;
&lt;li&gt;MAX(COL) ~ GROUP BY ~ : GROUP 중 MAX 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dpdpwl.tistory.com/80&quot;&gt;[Oracle]오라클 문자 합치기(CONCAT, ||)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://redcow77.tistory.com/263&quot;&gt;[Mysql] 문자열 합치는 함수 - CONCAT(), CONCAT_WS()&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>문자열합치기</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/77</guid>
      <comments>https://4d-why.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 18 Jul 2023 19:31:01 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 진료과별 총 예약 횟수 출력하기</title>
      <link>https://4d-why.tistory.com/76</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;APPOINTMENT&amp;nbsp;테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJV7WK/btsnFfuuvXK/geT5321Nl8LbMKRSFUvkw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJV7WK/btsnFfuuvXK/geT5321Nl8LbMKRSFUvkw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJV7WK/btsnFfuuvXK/geT5321Nl8LbMKRSFUvkw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJV7WK%2FbtsnFfuuvXK%2FgeT5321Nl8LbMKRSFUvkw0%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Column name Type Nullable&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;APNT_YMD&lt;/td&gt;
&lt;td&gt;TIMESTAMP&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APNT_NO&lt;/td&gt;
&lt;td&gt;NUMBER(5)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PT_NO&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCDP_CD&lt;/td&gt;
&lt;td&gt;VARCHAR(6)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MDDR_ID&lt;/td&gt;
&lt;td&gt;VARCHAR(10)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APNT_CNCL_YN&lt;/td&gt;
&lt;td&gt;VARCHAR(1)&lt;/td&gt;
&lt;td&gt;TRUE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APNT_CNCL_YMD&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL .ver&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
        MCDP_CD AS '진료과코드'
        ,COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
WHERE 1=1
AND   APNT_YMD LIKE '2022-05%'
GROUP BY MCDP_CD
ORDER BY COUNT(*), MCDP_CD
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE .ver&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
        MCDP_CD AS &quot;진료과코드&quot;
        ,COUNT(MCDP_CD) AS &quot;5월예약건수&quot;
FROM APPOINTMENT
WHERE 1=1
AND   TO_CHAR(APNT_YMD,'YYYY-MM') = '2022-05'
GROUP BY MCDP_CD
ORDER BY COUNT(MCDP_CD), MCDP_CD
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;한글 alias
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ORACLE &amp;rArr; 꼭 쌍따옴표(&amp;rdquo;&amp;rdquo;) 사용&lt;/li&gt;
&lt;li&gt;MYSQL &amp;rArr; 쌍따옴표(&amp;rdquo;&amp;rdquo;) / 따옴표(&amp;rsquo;&amp;rsquo;) 무관&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공부/CodingTest</category>
      <category>alias</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/76</guid>
      <comments>https://4d-why.tistory.com/76#entry76comment</comments>
      <pubDate>Tue, 18 Jul 2023 19:27:48 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 자동차 평균 대여 기간 구하기</title>
      <link>https://4d-why.tistory.com/75</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CAR_RENTAL_COMPANY_RENTAL_HISTORY&amp;nbsp;테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명:&amp;nbsp;AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1) 평균 대여 기간 &amp;gt; 7일 &lt;br /&gt;2) 자동차ID(CAR_ID), 평균 대여 기간(AVERAGE_DURATION) 3) 평균 대여기간 &amp;rArr; 소수점 2번째 자리에서 반올림 4) 평균 대여기간 &amp;rarr; 내림차순, 자동차ID &amp;rarr; 내림차순&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ngMtK/btsnEnmdceS/CWJ654WoduseEkRJjajGDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ngMtK/btsnEnmdceS/CWJ654WoduseEkRJjajGDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ngMtK/btsnEnmdceS/CWJ654WoduseEkRJjajGDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FngMtK%2FbtsnEnmdceS%2FCWJ654WoduseEkRJjajGDK%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Column name Type Nullable&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HISTORY_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAR_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;START_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;END_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL ver.&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
        CAR_ID
        ,AVERAGE_DURATION
FROM(
        SELECT
                CAR_ID
                ,ROUND(AVG(DATEDIFF(END_DATE,START_DATE) + 1),1) AS AVERAGE_DURATION
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
        GROUP BY CAR_ID
) T1
WHERE 1=1
AND   AVERAGE_DURATION &amp;gt;= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE ver.&lt;/h3&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT 
        CAR_ID
        ,AVERAGE_DURATION
FROM(
        SELECT
                CAR_ID
                ,ROUND(AVG((END_DATE - START_DATE) + 1),1) AS AVERAGE_DURATION
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
        GROUP BY CAR_ID
) T1
WHERE 1=1
AND   AVERAGE_DURATION &amp;gt;= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;소수점 반환&lt;/b&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;자릿수 생략하면 0으로 인식&lt;/li&gt;
&lt;li&gt;자릿수 &amp;gt; 0 : 소수점 이하 자리&lt;/li&gt;
&lt;li&gt;자릿수 &amp;lt; 0 : 소수점 이상 자리(정수 자리)&lt;/li&gt;
&lt;li&gt;반올림 여부 = 음수 &amp;rArr; 버림&lt;/li&gt;
&lt;li&gt;반올림 여부 = 0 / 생략 &amp;rArr; 반올림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ROUND(값[, 반올림할 자릿수][,반올림 여부])&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;자릿수 생략하면 0으로 인식&lt;/li&gt;
&lt;li&gt;자릿수 &amp;gt; 0 : 소수점 이하 자리&lt;/li&gt;
&lt;li&gt;자릿수 &amp;lt; 0 : 소수점 이상 자리(정수 자리)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;TRUNC(값[, 버림할 자릿수]) &amp;rArr; ORACLE TRUNCATE(값[,버림할 자릿수]) &amp;rArr; MYSQL&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CEIL(값)&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;FLOOR(값)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wakestand.tistory.com/544&quot;&gt;MySQL 소수점 반올림 올림 내림 사용방법 정리&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://12716.tistory.com/entry/ORACLE-%EC%9E%90%EB%A6%AC%EC%88%98-%EB%B0%98%EC%98%AC%EB%A6%BC-%EC%98%AC%EB%A6%BC-%EB%B2%84%EB%A6%BCROUND-TRUNC-CEIL-FLOOR&quot;&gt;[ORACLE] 자리수 반올림, 올림, 버림(ROUND, TRUNC, CEIL, FLOOR)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>소수점</category>
      <category>자리수</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/75</guid>
      <comments>https://4d-why.tistory.com/75#entry75comment</comments>
      <pubDate>Mon, 17 Jul 2023 19:24:48 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 평균 일일 대여 요금 구하기</title>
      <link>https://4d-why.tistory.com/74</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CAR_RENTAL_COMPANY_CAR&amp;nbsp;테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은&amp;nbsp;AVERAGE_FEE&amp;nbsp;로 지정해주세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLHQGZ/btsnEWvaFr2/mk6NFk7Jw6gRCuHskGzKw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLHQGZ/btsnEWvaFr2/mk6NFk7Jw6gRCuHskGzKw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLHQGZ/btsnEWvaFr2/mk6NFk7Jw6gRCuHskGzKw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLHQGZ%2FbtsnEWvaFr2%2Fmk6NFk7Jw6gRCuHskGzKw0%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&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;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;대여중인 자동차 정보 (CAR_RENTAL_COMPANY_CAR)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CAR_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAR_TYPE&lt;/td&gt;
&lt;td&gt;VARCHAR(255)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DAILY_FEE&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OPTIONS&lt;/td&gt;
&lt;td&gt;VARCHAR(255)&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL ver. == ORACLE ver.&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
      ROUND(SUM(DAILY_FEE) / COUNT(*)) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE 1=1
AND   CAR_TYPE = 'SUV'
GROUP BY CAR_TYPE
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;반올림하는 방법&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROUND() 함수 사용&lt;/li&gt;
&lt;li&gt;ROUND(숫자, 자릿수) : 자릿수에서 숫자 반올림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gent.tistory.com/241&quot;&gt;[Oracle] ROUND 함수 사용방법 (소수, 반올림, 절사)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://1day1code.tistory.com/entry/SQL-%EC%88%AB%EC%9E%90-%ED%95%A8%EC%88%98-ROUND-TRUNCMOD&quot;&gt;[SQL] 숫자 함수 (ROUND/ TRUNC/ MOD)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>반올림</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/74</guid>
      <comments>https://4d-why.tistory.com/74#entry74comment</comments>
      <pubDate>Mon, 17 Jul 2023 19:20:53 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기</title>
      <link>https://4d-why.tistory.com/73</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;zwj;♀️ 문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CAR_RENTAL_COMPANY_RENTAL_HISTORY &amp;nbsp;테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명:&amp;nbsp;RENT_TYPE )을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  1) 2022년 9월에 속하는 대여 기록 2) 대여 기간 &amp;ge; 30 = &amp;lsquo;장기 대여&amp;rsquo; / 대여 기간 &amp;lt; 30 = &amp;lsquo;단기 대여&amp;rsquo; &amp;rArr; 컬럼명 : RENT_TYPE 3) 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일, RENT_TYPE 표출 3) 대여 기록 ID를 기준으로 내림차순&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biPr9n/btsnGkvejgL/A2FzMMXQIz93tIMxfKWayK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biPr9n/btsnGkvejgL/A2FzMMXQIz93tIMxfKWayK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biPr9n/btsnGkvejgL/A2FzMMXQIz93tIMxfKWayK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiPr9n%2FbtsnGkvejgL%2FA2FzMMXQIz93tIMxfKWayK%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ℹ️ 테이블&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;자동차 대여 기록 정보 (CAR_RENTAL_COMPANY_RENTAL_HISTORY)Column name Type Nullable
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HISTORY_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAR_ID&lt;/td&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;START_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;END_DATE&lt;/td&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 답안&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL ver.&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT  
         HISTORY_ID
        ,CAR_ID
        ,DATE_FORMAT(START_DATE,'%Y-%m-%d') AS START_DATE
        ,DATE_FORMAT(END_DATE,'%Y-%m-%d') AS END_DATE
        ,CASE 
            WHEN DATEDIFF(END_DATE, START_DATE)+1 &amp;gt;= 30
            THEN '장기 대여'
            ELSE '단기 대여'
         END AS RENT_TYPE
  from CAR_RENTAL_COMPANY_RENTAL_HISTORY
  where START_DATE LIKE '2022-09%'
  order by HISTORY_ID desc;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE ver.&lt;/h3&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;SELECT
         HISTORY_ID
        ,CAR_ID
        ,TO_CHAR(START_DATE, 'YYYY-MM-DD') AS START_DATE
        ,TO_CHAR(END_DATE, 'YYYY-MM-DD') AS END_DATE
        ,CASE
            WHEN END_DATE - START_DATE +1 &amp;gt;= 30 
            THEN '장기 대여'
            ELSE '단기 대여'
         END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE 1=1
AND   TO_CHAR(START_DATE, 'YYYY-MM-DD') LIKE '2022-09%'
ORDER BY HISTORY_ID DESC
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;일수 구하는 방법&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;MYSQL &amp;rArr; DATEDIFF() 함수 사용구분자 약어&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;DATEDIFF(구분자, 시작일, 종료일) : 구분자에 따라 두 일자의 차이를 구해 int로 반환&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;년도&lt;/td&gt;
&lt;td&gt;year&lt;/td&gt;
&lt;td&gt;yy, yyyy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;분기&lt;/td&gt;
&lt;td&gt;quarter&lt;/td&gt;
&lt;td&gt;q, qq&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;월&lt;/td&gt;
&lt;td&gt;month&lt;/td&gt;
&lt;td&gt;m, mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일&lt;/td&gt;
&lt;td&gt;day&lt;/td&gt;
&lt;td&gt;d, dd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;주&lt;/td&gt;
&lt;td&gt;week&lt;/td&gt;
&lt;td&gt;wk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;시간&lt;/td&gt;
&lt;td&gt;hour&lt;/td&gt;
&lt;td&gt;m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;분&lt;/td&gt;
&lt;td&gt;minute&lt;/td&gt;
&lt;td&gt;n, mi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;초&lt;/td&gt;
&lt;td&gt;second&lt;/td&gt;
&lt;td&gt;s, ss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;밀리초&lt;/td&gt;
&lt;td&gt;millisecond&lt;/td&gt;
&lt;td&gt;ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;마이크로초&lt;/td&gt;
&lt;td&gt;microsecond&lt;/td&gt;
&lt;td&gt;mcs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;나노초&lt;/td&gt;
&lt;td&gt;nanosecond&lt;/td&gt;
&lt;td&gt;ns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;ORACLE &amp;rArr; 종료일 - 시작일&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mirwebma.tistory.com/178&quot;&gt;[MS-SQL] 날짜, 시간차이 구하기 (DATEDIFF)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>날짜차이</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/73</guid>
      <comments>https://4d-why.tistory.com/73#entry73comment</comments>
      <pubDate>Sun, 16 Jul 2023 18:16:02 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/SQL] 조건에 부합하는 중고거래 댓글 조회하기</title>
      <link>https://4d-why.tistory.com/70</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt; &amp;zwj;♀️ &lt;/span&gt;문제&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;USED_GOODS_BOARD&lt;/span&gt;와 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;USED_GOODS_REPLY &lt;/span&gt;&amp;nbsp;테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1) 2022년 10월에 작성된 게시글 2) 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일 조회 3) 댓글 작성일 기준 오름차순, 게시글 제목 기준 오름차순&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GsrT8/btsnEkC07nO/FS0gFSWEw3V41I09Dqm9K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GsrT8/btsnEkC07nO/FS0gFSWEw3V41I09Dqm9K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GsrT8/btsnEkC07nO/FS0gFSWEw3V41I09Dqm9K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGsrT8%2FbtsnEkC07nO%2FFS0gFSWEw3V41I09Dqm9K1%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;1080&quot; height=&quot;1080&quot; data-filename=&quot;프로그래머스 썸네일.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;ℹ️&lt;/span&gt; 테이블&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 중고거래 게시판 정보 (USED_GOODS_BOARD)&lt;/p&gt;
&lt;table id=&quot;d547343c-afe1-45fb-b2a9-d81acc623c6c&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;347f5fc3-c3a7-4b00-ae9d-e67ea2d2abe6&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;Column name&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;Type&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;Nullable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;9cb48291-b7d3-4ce1-bb79-b410edce72d2&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;BOARD_ID&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;VARCHAR(5)&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;75470da3-08f7-4b1f-90b3-df90c929fe51&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;WRITER_ID&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;VARCHAR(50)&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;a2b843e5-60af-4102-bf12-4471a1d736f0&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;TITLE&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;VARCHAR(100)&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;b7a672a4-522b-4ee8-8b5c-c147d6bda988&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;CONTENTS&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;VARCHAR(1000)&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;919fc328-9592-403e-a0ea-f1574f47644d&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;PRICE&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;NUMBER&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;82f510e2-16be-4288-a079-08e4a6716921&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;CREATED_DATE&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;DATE&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;c3458b5f-5c2b-4479-ba82-8331be23e842&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;STATUS&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;VARCHAR(10)&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;19db6b2d-63e0-4faa-a5c2-87de08cb5ac9&quot;&gt;
&lt;td id=&quot;&amp;gt;gAI&quot;&gt;VIEWS&lt;/td&gt;
&lt;td id=&quot;JRbz&quot;&gt;NUMBER&lt;/td&gt;
&lt;td id=&quot;ezqD&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 중고거래 게시판 댓글 정보 (USED_GOODS_REPLY)&lt;/p&gt;
&lt;table id=&quot;892b7aab-0da0-4f2a-8b74-0644d5494f2f&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;b4900a5b-3f44-4c55-8efb-2b62ac7252b7&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;ame&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;Type&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;Nullable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;9af14a43-521f-4eaf-8c9e-106778223844&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;REPLY_ID&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;VARCHAR(10)&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;f0530383-abf0-4c18-be79-675e0013df04&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;BOARD_ID&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;VARCHAR(5)&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;cd26cb70-d80b-4a62-bc69-e3c1b0ce6210&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;WRITER_ID&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;VARCHAR(50)&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;c8179fcc-b0a8-408b-a130-b1fbb2f7f37d&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;CONTENTS&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;VARCHAR(1000)&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;TRUE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;3f206af1-d349-421d-9752-1267d0d15564&quot;&gt;
&lt;td id=&quot;hrDd&quot;&gt;CREATED_DATE&lt;/td&gt;
&lt;td id=&quot;T;eX&quot;&gt;DATE&lt;/td&gt;
&lt;td id=&quot;:|iR&quot;&gt;FALSE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;✅&lt;/span&gt; 답안&lt;/b&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. MYSQL ver.&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
         A.TITLE /% 게시글 제목 %/
        ,A.BOARD_ID /% 게시글 ID %/
        ,B.REPLY_ID /% 댓글 ID %/
        ,B.WRITER_ID /% 댓글 ID %/
        ,B.CONTENTS /% 댓글 작성자 ID %/
        ,DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE /% 댓글 작성일 조회 %/
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B ON (B.BOARD_ID = A.BOARD_ID)
WHERE A.CREATED_DATE LIKE '2022-10%'
ORDER BY B.CREATED_DATE, A.TITLE
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. ORACLE ver.&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
         A.TITLE /% 게시글 제목 %/
        ,A.BOARD_ID /% 게시글 ID %/
        ,B.REPLY_ID /% 댓글 ID %/
        ,B.WRITER_ID /% 댓글 ID %/
        ,B.CONTENTS /% 댓글 작성자 ID %/
        ,TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') AS CREATED_DATE /% 댓글 작성일 조회 %/
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B ON (B.BOARD_ID = A.BOARD_ID)
WHERE TO_CHAR(A.CREATED_DATE, 'YYYY-MM-DD') LIKE '2022-10%'
ORDER BY B.CREATED_DATE, A.TITLE
;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  CHECK POINT&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DATE 타입 형식 변환 방법&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;MYSQL &amp;rArr; DATE_FORMATE() 함수 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;DATE_FORMATE(날짜, 형식) : 날짜를 지정한 형식으로 출력&lt;br /&gt;구분기호 역할 구분기호 역할&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;%Y&lt;/td&gt;
&lt;td&gt;4자리 년도&lt;/td&gt;
&lt;td&gt;%y&lt;/td&gt;
&lt;td&gt;2자리 년도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%M&lt;/td&gt;
&lt;td&gt;긴 월(영문)&lt;/td&gt;
&lt;td&gt;%m&lt;/td&gt;
&lt;td&gt;숫자 월(두 자리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%b&lt;/td&gt;
&lt;td&gt;짧은 월(영문)&lt;/td&gt;
&lt;td&gt;%c&lt;/td&gt;
&lt;td&gt;숫자 월(한 자리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%d&lt;/td&gt;
&lt;td&gt;일자(두 자리)&lt;/td&gt;
&lt;td&gt;%e&lt;/td&gt;
&lt;td&gt;일자(한 자리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%W&lt;/td&gt;
&lt;td&gt;긴 요일 이름(영문)&lt;/td&gt;
&lt;td&gt;%a&lt;/td&gt;
&lt;td&gt;짧은 요일 이름(영문)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%I&lt;/td&gt;
&lt;td&gt;시간(12시간)&lt;/td&gt;
&lt;td&gt;%H&lt;/td&gt;
&lt;td&gt;시간(24시간)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%r&lt;/td&gt;
&lt;td&gt;hh:mm:ss AM/PM&lt;/td&gt;
&lt;td&gt;%T&lt;/td&gt;
&lt;td&gt;hh:mm:SS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;%i&lt;/td&gt;
&lt;td&gt;분&lt;/td&gt;
&lt;td&gt;%S&lt;/td&gt;
&lt;td&gt;초&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;ORACLE &amp;rArr; TO_CHAR() 함수 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;TO_CHAR(날짜, 형식) : 날짜를 지정한 형식으로 STRING 타입으로 출력&lt;/blockquote&gt;
&lt;table id=&quot;41918602-e0db-47c0-8b50-2b16a7f896d3&quot; style=&quot;border-collapse: collapse; width: 100%; height: 160px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;da92cbdb-a1b9-40bf-ab6c-1e32b1ba4424&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;구분기호&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;역할&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;구분기호&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;역할&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;5fa0c075-0d02-4718-a42d-f52c42f5fb47&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;YYYY&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;4자리 년도&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;YY&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;2자리 년도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;d21be53c-ab96-491d-9e73-b65884006f46&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;MM&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;숫자 월&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;MON&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;숫자 월 + 월&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;448b501a-c023-4a48-a32e-70cc37e943f4&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;DAY&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;요일(한글)&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;DY&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;요일(한글 한 자리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;5d5798ba-9b3a-41ae-8fcd-f162ef12e54d&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;D&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;요일(숫자)&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;HH&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;시간(12시간)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;fe8a7831-9f54-4d7c-9609-3cf84c2d721d&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;HH24&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;시간(24시)&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;MI&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;6c493255-fb04-4780-b13a-19a62551b09f&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;SS&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;초&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;AM&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;오전&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;e428b43d-de1b-40d5-bc35-a2da919832d0&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;Tl=q&quot; style=&quot;height: 20px;&quot;&gt;PM&lt;/td&gt;
&lt;td id=&quot;Y|IF&quot; style=&quot;height: 20px;&quot;&gt;오후&lt;/td&gt;
&lt;td id=&quot;JTEO&quot; style=&quot;height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td id=&quot;BX&amp;gt;?&quot; style=&quot;height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://devjhs.tistory.com/89&quot;&gt;[mysql] DATE_FORMAT - 날짜 형식 설정&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://coding-factory.tistory.com/439&quot;&gt;[Oracle] 오라클 다양한 날짜 / 시간 포맷 변경 (TO_CHAR) 사용법 &amp;amp; 예제&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fillin.tistory.com/515&quot;&gt;Oracle TO_CHAR() format 오라클 문자열 날짜 포맷&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gent.tistory.com/331&quot;&gt;[Oracle] 오라클 TO_CHAR 함수 사용법 완벽한 정리 (날짜포맷, 소수점, 천단위 콤마)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>MySQL</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/70</guid>
      <comments>https://4d-why.tistory.com/70#entry70comment</comments>
      <pubDate>Sun, 16 Jul 2023 17:55:47 +0900</pubDate>
    </item>
    <item>
      <title>[백준/2292] 벌집</title>
      <link>https://4d-why.tistory.com/69</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;chaos.gif&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5FTSn/btrR5hBHaDJ/r0pg5mhC8j2HXjSStvFon0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5FTSn/btrR5hBHaDJ/r0pg5mhC8j2HXjSStvFon0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5FTSn/btrR5hBHaDJ/r0pg5mhC8j2HXjSStvFon0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/5FTSn/btrR5hBHaDJ/r0pg5mhC8j2HXjSStvFon0/img.gif&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;500&quot; height=&quot;250&quot; data-filename=&quot;chaos.gif&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;250&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 문제&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;397&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uYxwy/btrR5yJ3zdk/bwrKhcoSKSmKb60IRNUvB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uYxwy/btrR5yJ3zdk/bwrKhcoSKSmKb60IRNUvB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uYxwy/btrR5yJ3zdk/bwrKhcoSKSmKb60IRNUvB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuYxwy%2FbtrR5yJ3zdk%2FbwrKhcoSKSmKb60IRNUvB0%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;363&quot; height=&quot;397&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;397&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;(세 자리 수) &amp;times; (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;첫째 줄에 N(1 &amp;le; N &amp;le; 1,000,000,000)이 주어진다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 예시&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdSmm7/btrR3d7Ykks/8BEd4id64Kw2jk6pQrMUt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdSmm7/btrR3d7Ykks/8BEd4id64Kw2jk6pQrMUt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdSmm7/btrR3d7Ykks/8BEd4id64Kw2jk6pQrMUt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdSmm7%2FbtrR3d7Ykks%2F8BEd4id64Kw2jk6pQrMUt0%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;1744&quot; height=&quot;379&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;379&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;&amp;nbsp;&lt;/p&gt;
&lt;hr style=&quot;display: block; border: none; font-size: 0px; line-height: 0; height: 20px; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px -140px / 200px 200px; cursor: pointer !important; color: #000000; font-family: 'Noto Sans KR', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; 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;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 풀이&lt;/p&gt;
&lt;pre id=&quot;code_1622565659573&quot; class=&quot;bash&quot; style=&quot;overflow: auto; margin: 0px; padding: 0px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; background: rgba(0, 0, 0, 0.05); color: rgba(34, 85, 51, 0.87); text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int num = Integer.parseInt(st.nextToken());
        int cnt = 1;
        int sum = 1;
        
        while(true){
            if(sum &amp;gt;= num){
                break;
            }
            
            sum += (cnt*6);
            cnt++;
        }
        
        bw.write(cnt + &quot;\n&quot;);
        
        bw.flush();
        bw.close();
        br.close();
    }
}&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;&amp;nbsp;&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;4. 메모&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반복되는 규칙을 찾는 것이 중요&lt;br /&gt;1) 벌집은 6면체 =&amp;gt; 다음줄로 갈 때 마다 6개씩 갯수가 늘어남&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1개 -&amp;gt; 6개 -&amp;gt; 12개 -&amp;gt; 18개 -&amp;gt;...&lt;br /&gt;2) 벌집안의 숫자는 누적하여 늘어남&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 (0*6) -&amp;gt; 7 ((0*6) + (1*6)) -&amp;gt; 19 &lt;span&gt;((0*6) + (1*6) + (2*6)) -&amp;gt;...&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;다른 답안들&lt;br /&gt;1) 뺄셈으로 정답 구하기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1669302733429&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    	
    	int n = Integer.parseInt(br.readLine()) - 1;
    	int cnt = 1;
    	
    	while(n &amp;gt; 0) {
    		n -= (6 * cnt);
    		cnt++;
    	}
    	
    	bw.write(cnt + &quot;\n&quot;);
    	
    	
    	bw.flush();
    	bw.close();
    	br.close();
    	
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) 덧셈 방식인데 좀 더 간결하게 (조건문이 달라짐!)&lt;/p&gt;
&lt;pre id=&quot;code_1669302801855&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int num = Integer.parseInt(st.nextToken());
        int cnt = 1;
        int sum = 1;
        
        while(sum &amp;lt; num){            
            sum += (cnt*6);
            cnt++;
        }
        
        bw.write(cnt + &quot;\n&quot;);
        
        bw.flush();
        bw.close();
        br.close();
    }
}&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백준 &lt;a href=&quot;https://www.acmicpc.net/source/52074431&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/source/52074431&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>공부/CodingTest</category>
      <category>2292</category>
      <category>BOJ</category>
      <category>Java</category>
      <category>백준</category>
      <category>벌집</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>코딩테스트</category>
      <author>4d.why</author>
      <guid isPermaLink="true">https://4d-why.tistory.com/69</guid>
      <comments>https://4d-why.tistory.com/69#entry69comment</comments>
      <pubDate>Fri, 25 Nov 2022 00:15:39 +0900</pubDate>
    </item>
  </channel>
</rss>