<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sehyunee_.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 25 Oct 2023 07:25:44 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sehyunee_.log</title>
            <url>https://velog.velcdn.com/images/sehyunee_/profile/5bfc43da-92c1-434b-892b-2377d2bb4371/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sehyunee_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sehyunee_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[mySQL] solvesql 배송 예정일 예측 성공과 실패]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-solvesql-%EB%B0%B0%EC%86%A1-%EC%98%88%EC%A0%95%EC%9D%BC-%EC%98%88%EC%B8%A1-%EC%84%B1%EA%B3%B5%EA%B3%BC-%EC%8B%A4%ED%8C%A8</link>
            <guid>https://velog.io/@sehyunee_/mySQL-solvesql-%EB%B0%B0%EC%86%A1-%EC%98%88%EC%A0%95%EC%9D%BC-%EC%98%88%EC%B8%A1-%EC%84%B1%EA%B3%B5%EA%B3%BC-%EC%8B%A4%ED%8C%A8</guid>
            <pubDate>Wed, 25 Oct 2023 07:25:44 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Q. <a href="https://solvesql.com/problems/estimated-delivery-date/">https://solvesql.com/problems/estimated-delivery-date/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT DATE(order_purchase_timestamp) AS purchase_date,
       COUNT(CASE WHEN order_delivered_customer_date &lt;= order_estimated_delivery_date THEN order_id ELSE NULL END) AS success,
       COUNT(CASE WHEN order_delivered_customer_date &gt;= order_estimated_delivery_date THEN order_id ELSE NULL END) AS fail
FROM olist_orders_dataset 
WHERE order_purchase_timestamp BETWEEN &#39;2017-01-01 00:00:00&#39; AND &#39;2017-01-31 23:59:59&#39;
GROUP BY DATE(order_purchase_timestamp)
ORDER BY purchase_date ASC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 실전반 난이도 1 ~ 2 문제 풀이]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-solvesql-%EC%8B%A4%EC%A0%84%EB%B0%98-%EB%82%9C%EC%9D%B4%EB%8F%84-1-2-%EB%AC%B8%EC%A0%9C-%ED%92%80%EC%9D%B4</link>
            <guid>https://velog.io/@sehyunee_/mySQL-solvesql-%EC%8B%A4%EC%A0%84%EB%B0%98-%EB%82%9C%EC%9D%B4%EB%8F%84-1-2-%EB%AC%B8%EC%A0%9C-%ED%92%80%EC%9D%B4</guid>
            <pubDate>Thu, 12 Oct 2023 02:43:06 GMT</pubDate>
            <description><![CDATA[<p><strong>1. 첫 주문과 마지막 주문</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/first-and-last-orders/">https://solvesql.com/problems/first-and-last-orders/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT DATE(MIN(order_purchase_timestamp)) AS &#39;first_order_date&#39;,
       DATE(MAX(order_purchase_timestamp)) AS &#39;last_order_date&#39;
FROM olist_orders_dataset </code></pre>
</br>

<p><strong>2. 많이 주문한 테이블 찾기</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/find-tables-with-high-bill/">https://solvesql.com/problems/find-tables-with-high-bill/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT *
FROM tips
WHERE total_bill &gt; (SELECT AVG(total_bill) AS &#39;avg&#39; FROM tips)</code></pre>
</br>

<p>*<em>3. 레스토랑의 일일 평균 매출액 계산하기    *</em></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/sales-summary/">https://solvesql.com/problems/sales-summary/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT ROUND(AVG(sub.total), 2) AS &#39;avg_sales&#39;
FROM (
  SELECT day, SUM(total_bill) AS &#39;total&#39;
  FROM tips
  GROUP BY day) AS sub</code></pre>
</br>

<p><strong>4. 서울북부지방법원 따릉이 정류소</strong>    </p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/court-and-station/">https://solvesql.com/problems/court-and-station/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT *
FROM station
WHERE lat &gt; (
  SELECT lat
  FROM station
  WHERE name = &#39;서울북부지방법원&#39;)</code></pre>
</br>

<p><strong>5. 레스토랑의 대목</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/high-season-of-restaurant/">https://solvesql.com/problems/high-season-of-restaurant/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT *
FROM tips
WHERE day IN (
  SELECT day
  FROM tips
  GROUP BY day
  HAVING SUM(total_bill) &gt;= 1500)</code></pre>
</br>

<p><strong>6. 레스토랑의 요일별 VIP</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/restaurant-vip/">https://solvesql.com/problems/restaurant-vip/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT *
FROM tips
WHERE (day, total_bill) 
      IN (SELECT day, MAX(total_bill) AS &#39;revenue&#39; FROM tips GROUP BY day)</code></pre>
</br>

<p><strong>7. 고액 영수증 찾기</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/highest-bill-per-size/">https://solvesql.com/problems/highest-bill-per-size/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT *
FROM tips 
WHERE (size, total_bill) IN (
  SELECT size, MAX(total_bill) AS &#39;revenue&#39;
  FROM tips 
  GROUP BY size)
ORDER BY size ASC</code></pre>
</br>

<p><strong>8. 다음날도 서울숲의 미세먼지 농도는 나쁨 😢</strong></p>
<blockquote>
<p>Q. <a href="https://solvesql.com/problems/bad-finedust-measure/">https://solvesql.com/problems/bad-finedust-measure/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT m1.measured_at AS &#39;today&#39;,
       m2.measured_at AS &#39;next_day&#39;,
       m1.pm10 AS &#39;pm10&#39;,
       m2.pm10 AS &#39;next_pm10&#39;
FROM measurements AS m1 
     LEFT JOIN measurements AS m2 ON m2.measured_at = DATE_ADD(m1.measured_at, INTERVAL 1 DAY)
WHERE m2.pm10 &gt; m1.pm10</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 바겐 세일!]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EB%B0%94%EA%B2%90-%EC%84%B8%EC%9D%BC</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EB%B0%94%EA%B2%90-%EC%84%B8%EC%9D%BC</guid>
            <pubDate>Wed, 11 Oct 2023 08:38:26 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Q. <a href="https://solvesql.com/problems/bargain-sale/">https://solvesql.com/problems/bargain-sale/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT order_date,
       SUM(CASE WHEN discount &gt;= 0.8 THEN quantity ELSE 0 END) AS &#39;big_discount_items&#39;,
       SUM(quantity) AS &#39;all_items&#39;
FROM records 
GROUP BY order_date
HAVING all_items &gt;= 10
AND big_discount_items &gt;= 1
ORDER BY big_discount_items DESC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 국가 별 판매 금액]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EA%B5%AD%EA%B0%80-%EB%B3%84-%ED%8C%90%EB%A7%A4-%EA%B8%88%EC%95%A1</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EA%B5%AD%EA%B0%80-%EB%B3%84-%ED%8C%90%EB%A7%A4-%EA%B8%88%EC%95%A1</guid>
            <pubDate>Wed, 11 Oct 2023 08:18:38 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Q. <a href="https://solvesql.com/problems/sales-per-country/">https://solvesql.com/problems/sales-per-country/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT customers.country,
       (SUM(order_items.price * order_items.quantity)) - (SUM(CASE WHEN order_items.order_id LIKE &#39;C%&#39; THEN order_items.price * order_items.quantity ELSE &#39;0&#39; END)) AS &#39;sales&#39;
FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id
               LEFT JOIN order_items ON orders.order_id = order_items.order_id
WHERE order_date BETWEEN &#39;2019-01-01&#39; AND &#39;2019-01-31&#39;
GROUP BY customers.country
HAVING sales != &#39;0&#39;
ORDER BY sales DESC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 오스트리아 고객들의 환불 금액]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EC%98%A4%EC%8A%A4%ED%8A%B8%EB%A6%AC%EC%95%84-%EA%B3%A0%EA%B0%9D%EB%93%A4%EC%9D%98-%ED%99%98%EB%B6%88-%EA%B8%88%EC%95%A1</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EC%98%A4%EC%8A%A4%ED%8A%B8%EB%A6%AC%EC%95%84-%EA%B3%A0%EA%B0%9D%EB%93%A4%EC%9D%98-%ED%99%98%EB%B6%88-%EA%B8%88%EC%95%A1</guid>
            <pubDate>Sun, 08 Oct 2023 19:36:08 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Q. <a href="https://solvesql.com/problems/refund-austria/">https://solvesql.com/problems/refund-austria/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT ABS(SUM(price * quantity)) AS refund_austria
FROM order_items LEFT JOIN orders ON order_items.order_id = orders.order_id
                 LEFT JOIN customers ON orders.customer_id = customers.customer_id
WHERE order_items.order_id LIKE &#39;C%&#39;
AND country = &#39;Austria&#39;</code></pre>
</br>

<p>☑️ <strong>point</strong></p>
<ul>
<li>ABS( ) -&gt; 절대값 반환</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 지역별 주문의 특징]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EC%A7%80%EC%97%AD%EB%B3%84-%EC%A3%BC%EB%AC%B8%EC%9D%98-%ED%8A%B9%EC%A7%95</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EC%A7%80%EC%97%AD%EB%B3%84-%EC%A3%BC%EB%AC%B8%EC%9D%98-%ED%8A%B9%EC%A7%95</guid>
            <pubDate>Sun, 08 Oct 2023 18:29:09 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Q. <a href="https://solvesql.com/problems/characteristics-of-orders/">https://solvesql.com/problems/characteristics-of-orders/</a></p>
</blockquote>
<pre><code class="language-sql">WITH sub AS (
  SELECT region, category, COUNT(DISTINCT order_id) AS cnt
  FROM records
  GROUP BY region, category)

SELECT Region,
       SUM(CASE WHEN category = &#39;Furniture&#39; THEN cnt END) AS &#39;Furniture&#39;,
       SUM(CASE WHEN category = &#39;Office Supplies&#39; THEN cnt END) AS &#39;Office Supplies&#39;,
       SUM(CASE WHEN category = &#39;Technology&#39; THEN cnt END) AS &#39;Technology&#39;
FROM sub
GROUP BY region
ORDER BY region ASC</code></pre>
<p>☑️ <strong>point</strong></p>
<ul>
<li>CASE문 사용 후 컬럼이 1개만 나와야하는데 여러 컬럼으로 나뉘어 null 값이 나올 경우 -&gt; 집계함수를 사용해서 대표값 지정!! 
(GROUP BY에서 집계함수를 사용하는 이유와 같은 개념)</li>
<li>참고 : <a href="https://velog.io/@sehyunee_/SQL-GROUP-BY%EC%97%90-%EC%A7%91%EA%B3%84%ED%95%A8%EC%88%98%EB%A5%BC-%EC%8D%A8%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0">https://velog.io/@sehyunee_/SQL-GROUP-BY에-집계함수를-써야-하는-이유</a></li>
</ul>
</br>
</br>

<p>+) 아래와 같은 풀이도 가능</p>
<pre><code class="language-sql">SELECT region AS Region,
       COUNT(DISTINCT CASE WHEN category = &#39;Furniture&#39; THEN order_id ELSE NULL END) AS &#39;Furniture&#39;,
       COUNT(DISTINCT CASE WHEN category = &#39;Office Supplies&#39; THEN order_id ELSE NULL END) AS &#39;Office Supplies&#39;,
       COUNT(DISTINCT CASE WHEN category = &#39;Technology&#39; THEN order_id ELSE NULL END) AS &#39;Technology&#39;
FROM records
GROUP BY region
ORDER BY region ASC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] 오랜만에 하는 SQL 연습 기록]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EC%98%A4%EB%9E%9C%EB%A7%8C%EC%97%90-%ED%95%98%EB%8A%94-SQL-%EC%97%B0%EC%8A%B5-%EA%B8%B0%EB%A1%9D</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EC%98%A4%EB%9E%9C%EB%A7%8C%EC%97%90-%ED%95%98%EB%8A%94-SQL-%EC%97%B0%EC%8A%B5-%EA%B8%B0%EB%A1%9D</guid>
            <pubDate>Sun, 08 Oct 2023 18:12:10 GMT</pubDate>
            <description><![CDATA[<p>8월부터 일을 시작하게 되었는데, 첫 한달은 적응하기 바빴다.
이제는 나름 적응이 되어 업무 소강상태에 무엇을 할지 찾기 시작했는데 인사이트나 아티클만 주구장창 읽다가..
생각해보니 sql을 업무 상 쓸 일이 없고.. 이러다간 다 까먹어서 죽도 밥도 안되겠다 싶어서 오랜만에 solvesql에 들어가 연습을 좀 했다!</p>
</br>
정말 당황스러웠던 건..
</br>
난이도 1짜리 문제를 보고 '1분컷이네!'했는데 실제로 해결하기까지 약 30분이 넘게 걸렸다는 거...
</br>
너무 속상하고 황당해서 다시 sql을 꾸준히 연습해야겠다는 생각을 절실히 했다 ㅠㅠ


<p>우선은 solvesql 사이트에서 입문반 때 풀었던 문제들을 전부 복습하고, 그 외 자습용으로 공개 된 문제들을 전부 풀어보았다!</p>
<p>그 결과 약 일주일 동안 41문제 모두 풀기 성공!!~</p>
<p>생각보다 근본없이 막 다 까먹진 않은 것 같아 다행이었다..
실전반 문제들도 얼른 차근차근 복습해봐야겠다! 서브쿼리,, 무섭지만...ㅠㅎㅎ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql Amy는 이 영화를 어디서 볼까? (CASE문에 조건 여러개 달기)]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-CASE%EB%AC%B8%EC%97%90-%EC%A1%B0%EA%B1%B4-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EB%8B%AC%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/mySQL-CASE%EB%AC%B8%EC%97%90-%EC%A1%B0%EA%B1%B4-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EB%8B%AC%EA%B8%B0</guid>
            <pubDate>Sun, 08 Oct 2023 15:16:30 GMT</pubDate>
            <description><![CDATA[</br>

<blockquote>
<p>Q.  <a href="https://solvesql.com/problems/ott-used-by-amy/">https://solvesql.com/problems/ott-used-by-amy/</a></p>
</blockquote>
<pre><code class="language-sql">SELECT title,
       year,
       genres,
       directors,
       CASE WHEN netflix = &#39;1&#39; THEN &#39;netflix&#39;
            WHEN netflix = &#39;0&#39; AND prime_video = &#39;1&#39; THEN &#39;prime_video&#39;
            WHEN netflix = &#39;0&#39; AND prime_video = &#39;0&#39; AND disney_plus = &#39;1&#39; THEN &#39;disney_plus&#39; ELSE &#39;hulu&#39; END
            AS &#39;platform&#39;
FROM movies
WHERE year = 2021
ORDER BY title ASC</code></pre>
</br>

<p>☑️ <strong>point</strong></p>
<ul>
<li>CASE문에 조건 여러개 다는 것 헷갈리지 말기!!!
(자꾸 컬럼을 여러개로 나누고 null로 표시되도록 잘못 작성하는 실수 반복중 ㅠㅠ)</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] 해커랭크 Challenges]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%ED%95%B4%EC%BB%A4%EB%9E%AD%ED%81%AC-Challenges</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%ED%95%B4%EC%BB%A4%EB%9E%AD%ED%81%AC-Challenges</guid>
            <pubDate>Sat, 15 Jul 2023 08:52:49 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.hackerrank.com/challenges/challenges/problem?h_r=internal-search">https://www.hackerrank.com/challenges/challenges/problem?h_r=internal-search</a></p>
<ol>
<li>HAVING 절에<ul>
<li>challenges_created = max(challenges_created),</li>
<li>challenges_created =/ max(challenges_created)
각각의 조건을 걸어서 작성하는 쿼리</li>
</ul>
</li>
</ol>
<ul>
<li>쿼리가 길고 복잡하다는 단점 존재</li>
</ul>
<pre><code class="language-sql">SELECT h.hacker_id,
       h.name,
       COUNT(*) AS challenges_created
FROM Hackers AS h
     INNER JOIN Challenges AS c ON h.hacker_id = c.hacker_id
GROUP BY h.hacker_id, h.name
HAVING challenges_created = (SELECT MAX(challenges_created)
                             FROM (
                                   SELECT hacker_id, COUNT(*) AS challenges_created
                                   FROM Challenges
                                   GROUP BY hacker_id) AS sub)
OR challenges_created IN 
        (SELECT challenges_created
         FROM (
               SELECT hacker_id, COUNT(*) AS challenges_created
               FROM Challenges
               GROUP BY hacker_id) AS sub
         GROUP BY challenges_created
         HAVING COUNT(*) = 1)                                  
ORDER BY challenges_created DESC, h.hacker_id ASC</code></pre>
<br/>

<ol start="2">
<li>WITH 문을 활용한 서브쿼리</li>
</ol>
<ul>
<li>훨씬 간결하고 가독성이 좋음<pre><code class="language-sql">WITH counter AS (
  SELECT Hackers.hacker_id, 
         Hackers.name, 
         COUNT(*) AS challenges_created
  FROM Challenges 
       INNER JOIN Hackers ON Challenges.hacker_id = Hackers.hacker_id
  GROUP BY Hackers.hacker_id, Hackers.name)
</code></pre>
</li>
</ul>
<p>SELECT counter.hacker_id, 
       counter.name, 
       counter.challenges_created
FROM counter
WHERE counter.challenges_created = (SELECT MAX(challenges_created) FROM counter)
OR counter.challenges_created IN 
                    (SELECT challenges_created 
                     FROM counter 
                     GROUP BY challenges_created 
                     HAVING COUNT(challenges_created) = 1)
ORDER BY counter.challenges_created DESC, counter.hacker_id ASC
```</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 조건에 맞는 회원수 구하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A1%B0%EA%B1%B4%EC%97%90-%EB%A7%9E%EB%8A%94-%ED%9A%8C%EC%9B%90%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A1%B0%EA%B1%B4%EC%97%90-%EB%A7%9E%EB%8A%94-%ED%9A%8C%EC%9B%90%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 15 Jul 2023 06:53:19 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/131535">https://school.programmers.co.kr/learn/courses/30/lessons/131535</a></p>
<p>조회할 데이터 : USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원의 수
조건1. 2021년에 가입
조건2. 나이가 20세 이상 29세 이하</p>
<pre><code class="language-sql">SELECT COUNT(*) AS USERS
FROM user_info
WHERE YEAR(JOINED) = &#39;2021&#39;
AND AGE BETWEEN 20 AND 29</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 12세 이하인 여자 환자 목록 출력하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-12%EC%84%B8-%EC%9D%B4%ED%95%98%EC%9D%B8-%EC%97%AC%EC%9E%90-%ED%99%98%EC%9E%90-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-12%EC%84%B8-%EC%9D%B4%ED%95%98%EC%9D%B8-%EC%97%AC%EC%9E%90-%ED%99%98%EC%9E%90-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 15 Jul 2023 06:44:02 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/132201">https://school.programmers.co.kr/learn/courses/30/lessons/132201</a></p>
<p>조회할 데이터 : 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호
조건1. 전화번호가 없는 경우, &#39;NONE&#39;으로 출력
조건2. 결과는 나이를 기준으로 내림차순 정렬, 나이가 같다면 환자이름을 기준으로 오름차순 정렬</p>
<pre><code class="language-sql">SELECT pt_name, pt_no, gend_cd, age, 
       CASE WHEN tlno IS NULL THEN &#39;NONE&#39; ELSE tlno END AS TLNO
FROM patient
WHERE age &lt;= 12 AND GEND_CD = &#39;W&#39;
ORDER BY age DESC, pt_name ASC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 평균 일일 대여 요금 구하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%8F%89%EA%B7%A0-%EC%9D%BC%EC%9D%BC-%EB%8C%80%EC%97%AC-%EC%9A%94%EA%B8%88-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%8F%89%EA%B7%A0-%EC%9D%BC%EC%9D%BC-%EB%8C%80%EC%97%AC-%EC%9A%94%EA%B8%88-%EA%B5%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 28 Jun 2023 17:04:35 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/151136">https://school.programmers.co.kr/learn/courses/30/lessons/151136</a></p>
<p>조회할 데이터 : 평균 일일 대여 요금
조건1. 자동차 종류가 &#39;SUV&#39;
조건2. 평균 일일 대여 요금은 소수 첫번째 자리에서 반올림, 컬럼명은 average_fee로 지정</p>
<pre><code class="language-sql">SELECT ROUND(AVG(daily_fee)) AS average_fee
FROM car_rental_company_car
WHERE car_type = &#39;SUV&#39;</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 흉부외과 또는 일반외과 의사 목록 출력하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9D%89%EB%B6%80%EC%99%B8%EA%B3%BC-%EB%98%90%EB%8A%94-%EC%9D%BC%EB%B0%98%EC%99%B8%EA%B3%BC-%EC%9D%98%EC%82%AC-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9D%89%EB%B6%80%EC%99%B8%EA%B3%BC-%EB%98%90%EB%8A%94-%EC%9D%BC%EB%B0%98%EC%99%B8%EA%B3%BC-%EC%9D%98%EC%82%AC-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 28 Jun 2023 16:56:14 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/132203">https://school.programmers.co.kr/learn/courses/30/lessons/132203</a></p>
<p>조회할 데이터 : 이름, 의사ID, 진료과, 고용일자
조건1. 진료과과 흉부외과(CS)이거나 일반외과(GS)
조건2. 고용일자를 기준으로 내림차순 정렬, 고용일자가 같다면 이름을 기준으로 오름차순 정렬</p>
<pre><code class="language-sql">SELECT dr_name,
       dr_id,
       mcdp_cd,
       DATE_FORMAT(hire_ymd, &#39;%Y-%m-%d&#39;) AS hire_ymd
FROM doctor
WHERE mcdp_cd IN (&#39;CS&#39;, &#39;GS&#39;)
ORDER BY hire_ymd DESC, dr_name ASC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 서울에 위치한 식당 목록 출력하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%84%9C%EC%9A%B8%EC%97%90-%EC%9C%84%EC%B9%98%ED%95%9C-%EC%8B%9D%EB%8B%B9-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%84%9C%EC%9A%B8%EC%97%90-%EC%9C%84%EC%B9%98%ED%95%9C-%EC%8B%9D%EB%8B%B9-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 28 Jun 2023 16:51:14 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/131118">https://school.programmers.co.kr/learn/courses/30/lessons/131118</a></p>
<p>조회할 데이터 : 식당ID, 식당 이름, 음식 종류, 즐겨찾기 수, 주소, 리뷰 평균 점수
조건1. 서울에 위치
조건2. 리뷰 평균점수는 소수점 세번째 자리에서 반올림
조건3. 결과는 평균점수를 기준으로 내림차순 정렬, 평균점수가 같다면 즐겨찾기 수를 기준으로 내림차순 정렬</p>
<pre><code class="language-sql">SELECT rest_info.rest_id,
       rest_info.rest_name,
       rest_info.food_type,
       rest_info.favorites,
       rest_info.address,
       ROUND(AVG(rest_review.review_score), 2) AS score
FROM rest_info 
     INNER JOIN rest_review ON rest_info.rest_id = rest_review.rest_id
WHERE rest_info.address LIKE &#39;서울%&#39;
GROUP BY rest_info.rest_id
ORDER BY score DESC, rest_info.favorites DESC</code></pre>
<br/>

<p>☑️ <strong>헤맨 부분</strong>
&#39;%서울%&#39;이 아닌, &#39;서울%&#39;로 입력해야 정답처리 되었음</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 강원도에 위치한 생산공장 목록 출력하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B0%95%EC%9B%90%EB%8F%84%EC%97%90-%EC%9C%84%EC%B9%98%ED%95%9C-%EC%83%9D%EC%82%B0%EA%B3%B5%EC%9E%A5-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B0%95%EC%9B%90%EB%8F%84%EC%97%90-%EC%9C%84%EC%B9%98%ED%95%9C-%EC%83%9D%EC%82%B0%EA%B3%B5%EC%9E%A5-%EB%AA%A9%EB%A1%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 28 Jun 2023 16:36:50 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/131112">https://school.programmers.co.kr/learn/courses/30/lessons/131112</a></p>
<p>조회할 데이터 : 공장ID, 공장 이름, 주소
조건1. 강원도에 위치
조건2. 결과는 공장ID를 기준으로 오름차순 정렬</p>
<pre><code class="language-sql">SELECT factory_id, 
       factory_name,
       address
FROM food_factory
WHERE address LIKE &#39;%강원도%&#39;
ORDER BY factory_id ASC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] 리트코드 627. Swap Salary (UPDATE 활용)]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EB%A6%AC%ED%8A%B8%EC%BD%94%EB%93%9C-627.-Swap-Salary-UPDATE-%ED%99%9C%EC%9A%A9</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EB%A6%AC%ED%8A%B8%EC%BD%94%EB%93%9C-627.-Swap-Salary-UPDATE-%ED%99%9C%EC%9A%A9</guid>
            <pubDate>Wed, 07 Jun 2023 17:28:31 GMT</pubDate>
            <description><![CDATA[<p><a href="https://leetcode.com/problems/swap-salary/description/">https://leetcode.com/problems/swap-salary/description/</a></p>
<p><img src="https://velog.velcdn.com/images/sehyunee_/post/817f36f5-7f51-4f01-8f6d-24226cad22b0/image.png" alt=""></p>
<p>테이블 내 sex 컬럼에서 값이 m인 것은 f로, f인 것은 m으로 변경</p>
<pre><code class="language-sql">UPDATE Salary
SET sex = CASE WHEN sex = &#39;f&#39; THEN &#39;m&#39; ELSE &#39;f&#39; END</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] 서브쿼리]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC</guid>
            <pubDate>Mon, 05 Jun 2023 16:37:37 GMT</pubDate>
            <description><![CDATA[<p><strong>WHERE 절 서브쿼리</strong></p>
<p>(1) 단일행 서브쿼리 (✨중요)
-- 비교연산자와 함께 사용 (=, &gt;, &lt; 등)
-- 비교연산자를 사용하기 때문에 서브쿼리로 출력한 결과값은 반드시 단 1개만 나와야 한다.</p>
<pre><code class="language-sql">-- 평균 영수 금액보다 더 많이 지불한 경우를 모두 출력해주세요.
-- 1. 평균 영수 금액 출력 2. 1의 쿼리로 출력한 평균 영수 금액을 WHERE 절의 조건으로 사용하는 쿼리 작성

SELECT *
FROM tips
WHERE total_bill &gt; (SELECT AVG(total_bill) FROM tips)
</code></pre>
<br/>

<p>(2) 다중행 서브쿼리 (✨중요)
-- IN, NOT IN과 함께 사용
-- 서브쿼리의 결과값이 컬럼은 1개, 로우가 N개</p>
<pre><code class="language-sql">-- 요일 별 판매 금액이 1500불 이상인 날의 결제 내역을 모두 출력해주세요.
-- 1. 요일 별 판매 금액 출력 =&gt; 토요일, 일요일이 &#39;판매 금액 1500불 이상&#39; 조건을 만족함
-- 2. 즉, 요일 별 판매 금액이 1500불 이상인 날 = 토요일, 일요일이므로 문제가 원하는 것은 &#39;토요일/일요일의 결제 내역을 모두 출력해주세요&#39;

SELECT *
FROM tips
WHERE day IN (
    SELECT day
    FROM tips
    GROUP BY day
    HAVING SUM(sales) &gt;= 1500)</code></pre>
<p>-- 서브쿼리의 결과값 : SUM(sales)가 1500불 이상인 day를 출력 = 토요일, 일요일
-- 아우터 쿼리 : 서브쿼리에 따라 필터링 된 토요일, 일요일의 전체 결제 내역을 모두 출력</p>
<br/>

<p>(3) 다중컬럼 서브쿼리
-- 서브쿼리의 결과값이 컬럼 N개, 로우도 N개</p>
<pre><code class="language-sql">-- 요일 별로 가장 높은 금액의 결제 내역들을 출력해주세요.

SELECT *
FROM tips
WHERE (day, total_bill) IN (
    SELECT day, MAX(total_bill)
    FROM tips
    GROUP BY day)</code></pre>
<br/>

<p><strong>FROM 절 서브쿼리</strong> (✨중요)
-- 서브쿼리에 꼭 별칭을 주어야 한다.
-- 서브쿼리의 경우 &gt; 임시의 테이블처럼 활용이 가능하다. (조인도 가능)</p>
<pre><code class="language-sql">-- 이 레스토랑의 요일별 매출액의 평균을 구해주세요.

SELECT AVG(sales)
FROM (
    SELECT day, SUM(total_bill) AS sales
    FROM tips
    GROUP BY day) AS daily</code></pre>
<p>-- WITH문 활용 (조인도 가능)</p>
<pre><code class="language-sql">WITH daily AS (
    SELECT day, SUM(total_bill) AS sales
    FROM tips
    GROUP BY day)
SELECT AVG(sales)
FROM daily</code></pre>
<p>-- 예제</p>
<pre><code class="language-sql">-- 각 영수 금액이, 요일 별 매출액에서 차지하는 비율을 계산해주세요. 
-- 비율은 반올림하여 소수점 둘째자리까지만 출력해주세요. 영수 금액이 높은 것부터 출력해주세요.

WITH daily AS (
  SELECT day, SUM(total_bill) AS sales
  FROM tips
  GROUP BY day)

SELECT tips.day, tips.total_bill, ROUND(tips.total_bill / daily.sales * 100, 2) AS pct
FROM tips INNER JOIN daily ON tips.day = daily.day
ORDER BY tips.total_bill DESC</code></pre>
<br/>

<p><strong>SELECT 절 서브쿼리</strong>
-- 단일행 서브쿼리만 사용 가능함
-- 행 바이 행으로 계산되는 개념</p>
<pre><code class="language-sql">-- 각 영수 금액이, 요일 별 매출액에서 차지하는 비율을 계산해주세요. 
-- 비율은 반올림하여 소수점 둘째자리까지만 출력해주세요. 영수 금액이 높은 것부터 출력해주세요.

SELECT t1.day, t1.total_bill,
       (SELECT SUM(total_bill) FROM tips AS t2 WHERE t2.day = t1.day) AS sales,
       ROUND(t1.total_bill / (SELECT SUM(total_bill) FROM tips AS t2 WHERE t2.day = t1.day) * 100, 2) AS pct
FROM tips AS t1
ORDER BY t1.total_bill DESC</code></pre>
<br/>

<pre><code class="language-sql">-- 각 영수 금액이, 이 레스토랑의 전체 매출액에서 차지하는 비율을 계산해주세요. 
-- 비율은 반올림하여 소수점 둘째자리까지만 출력해주세요. 영수금액이 높은 것부터 출력해주세요.

SELECT t1.day, t1.total_bill,
       (SELECT SUM(total_bill) FROM tips AS t2) AS sales,
ROUND(t1.total_bill / (SELECT SUM(total_bill) FROM tips AS t2) * 100, 2) AS daily
FROM tips AS t1
ORDER BY t1.total_bill DESC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] solvesql 배송 예정일 예측 성공과 실패]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EB%B0%B0%EC%86%A1-%EC%98%88%EC%A0%95%EC%9D%BC-%EC%98%88%EC%B8%A1-%EC%84%B1%EA%B3%B5%EA%B3%BC-%EC%8B%A4%ED%8C%A8</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EB%B0%B0%EC%86%A1-%EC%98%88%EC%A0%95%EC%9D%BC-%EC%98%88%EC%B8%A1-%EC%84%B1%EA%B3%B5%EA%B3%BC-%EC%8B%A4%ED%8C%A8</guid>
            <pubDate>Mon, 05 Jun 2023 16:04:09 GMT</pubDate>
            <description><![CDATA[<p>2017년 1월 한 달 동안 발생한 주문의 배송 예측이 정확했는지 분석을 하려고 합니다. 
고객의 구매 일자별로 배송 예정 시각 안에 고객에게 도착한 주문과, 배송 예정 시각이 지나서 고객에게 도착한 주문을 각각 집계하는 쿼리를 작성해주세요.
배송 완료 또는 배송 예정 시각 데이터가 없는 경우는 계산에서 제외합니다. 
계산 결과는 구매 날짜를 기준으로 오름차순 정렬되어야 하고, 아래 컬럼을 포함해야 합니다.</p>
<pre><code class="language-sql">SELECT DATE(order_purchase_timestamp) AS purchase_date,
       COUNT(DISTINCT CASE WHEN order_estimated_delivery_date &gt;= order_delivered_customer_date THEN customer_id ELSE NULL END) AS success,
       COUNT(DISTINCT CASE WHEN order_estimated_delivery_date &lt; order_delivered_customer_date THEN customer_id ELSE NULL END) AS fail
FROM olist_orders_dataset 
WHERE order_purchase_timestamp BETWEEN &#39;2017-01-01 00:00:00&#39; AND &#39;2017-01-31 23:59:59&#39;
AND order_delivered_customer_date IS NOT NULL
AND order_estimated_delivery_date IS NOT NULL
GROUP BY purchase_date</code></pre>
<br/>

<h4 id="☑️-point">☑️ point</h4>
<ol>
<li>정해진 기간의 주문수만 조회하기 위한 WHERE 조건절 작성</li>
<li>배송 완료/배송 예정 시각 데이터가 없는 경우 계산에서 제외하기 위한 WHERE 조건절 추가 작성</li>
<li>배송 예정 시각 &gt; 배송 완료 시각일 경우 -&gt; 배송 예정 시각 이전에 배송이 완료되었음을 의미하므로 &#39;success&#39;
배송 예정 시각 &lt; 배송 완료 시각일 경우 -&gt; 배송 예정 시각 이후에 배송이 완료되었음을 의미하므로 &#39;fail&#39;</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기]]></title>
            <link>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A6%90%EA%B2%A8%EC%B0%BE%EA%B8%B0%EA%B0%80-%EA%B0%80%EC%9E%A5-%EB%A7%8E%EC%9D%80-%EC%8B%9D%EB%8B%B9-%EC%A0%95%EB%B3%B4-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sehyunee_/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A6%90%EA%B2%A8%EC%B0%BE%EA%B8%B0%EA%B0%80-%EA%B0%80%EC%9E%A5-%EB%A7%8E%EC%9D%80-%EC%8B%9D%EB%8B%B9-%EC%A0%95%EB%B3%B4-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 26 May 2023 06:54:42 GMT</pubDate>
            <description><![CDATA[<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/131123">https://school.programmers.co.kr/learn/courses/30/lessons/131123</a></p>
<br/>

<p>REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
<br/></p>
<pre><code class="language-sql">WITH fav AS (
    SELECT food_type,
           rest_name,
           MAX(favorites) OVER (PARTITION BY food_type) AS favorites
    FROM rest_info)

SELECT DISTINCT rest_info.food_type,
       rest_info.rest_id,
       rest_info.rest_name,
       rest_info.favorites
FROM rest_info
     INNER JOIN fav ON rest_info.food_type = fav.food_type
     AND rest_info.favorites = fav.favorites
ORDER BY rest_info.food_type DESC</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mySQL] 정규표현식을 활용한 문제 모음 - 해커랭크 Weather Observation Station 6 ~ 11번]]></title>
            <link>https://velog.io/@sehyunee_/mySQL-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%AC%B8%EC%A0%9C-%EB%AA%A8%EC%9D%8C-%ED%95%B4%EC%BB%A4%EB%9E%AD%ED%81%AC-Weather-Observation-Station-6-11%EB%B2%88</link>
            <guid>https://velog.io/@sehyunee_/mySQL-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%AC%B8%EC%A0%9C-%EB%AA%A8%EC%9D%8C-%ED%95%B4%EC%BB%A4%EB%9E%AD%ED%81%AC-Weather-Observation-Station-6-11%EB%B2%88</guid>
            <pubDate>Thu, 25 May 2023 10:12:33 GMT</pubDate>
            <description><![CDATA[<ul>
<li>정규표현식 튜토리얼 : <a href="https://regexone.com/lesson/letters_and_digits">https://regexone.com/lesson/letters_and_digits</a>?</li>
<li>정규표현을 테스트 해 볼 수 있는 사이트 : <a href="https://regexr.com">https://regexr.com</a></li>
</ul>
<br/>
<br/>


<p>-- 01. Weather Observation Station 6
<a href="https://www.hackerrank.com/challenges/weather-observation-station-6">https://www.hackerrank.com/challenges/weather-observation-station-6</a></p>
<p>Query the list of CITY names starting with vowels (i.e., a, e, i, o, or u) from STATION.</p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city REGEXP &#39;^[aeiou].*&#39;</code></pre>
<p>^ 여기서부터 [ ] 안의 문자가 시작됨
.* 뒤에 아무거나 와도 상관없음 (LIKE 함수의 %와 같은 역할)
<br/></p>
<p>-- 02. Weather Observation Station 7
<a href="https://www.hackerrank.com/challenges/weather-observation-station-7">https://www.hackerrank.com/challenges/weather-observation-station-7</a></p>
<p>Query the list of CITY names ending with vowels (a, e, i, o, u) from STATION.</p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city REGEXP &#39;.*[aeiou]$&#39;</code></pre>
<p>$ [ ] 안의 문자로 끝나야 함
<br/></p>
<p>-- 03. Weather Observation Station 8
<a href="https://www.hackerrank.com/challenges/weather-observation-station-8">https://www.hackerrank.com/challenges/weather-observation-station-8</a></p>
<p>Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters.</p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city REGEXP &#39;^[aeiou].*[aeiou]$&#39;</code></pre>
<p>^[aeiou] 맨 앞글자가 [ ] 안의 문자들이고,
.* 중간은 어떤 것이 와도 상관없고
[aeiou]$ 맨 뒷글자가 [ ] 안의 문자들이어야 한다
<br/></p>
<p>-- 04. Weather Observation Station 9
<a href="https://www.hackerrank.com/challenges/weather-observation-station-9">https://www.hackerrank.com/challenges/weather-observation-station-9</a></p>
<p>Query the list of CITY names from STATION that do not start with vowels. </p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city NOT REGEXP &#39;^[a,e,i,o,u].*&#39;</code></pre>
<p>~이 아니다로 부정할때는 REGEXP 함수 앞에 NOT을 써준다
(LIKE 함수의 NOT LIKE와 비슷한 활용)
<br/></p>
<p>-- 05. Weather Observation Station 10
<a href="https://www.hackerrank.com/challenges/weather-observation-station-10">https://www.hackerrank.com/challenges/weather-observation-station-10</a></p>
<p>Query the list of CITY names from STATION that do not end with vowels.</p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city NOT REGEXP &#39;.*[aeiou]$&#39;</code></pre>
<br/>

<p>-- 06. Weather Observation Station 11
<a href="https://www.hackerrank.com/challenges/weather-observation-station-11">https://www.hackerrank.com/challenges/weather-observation-station-11</a></p>
<p>Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels.</p>
<pre><code class="language-sql">SELECT DISTINCT city
FROM station
WHERE city NOT REGEXP &#39;^[aeiou].*&#39;
OR city NOT REGEXP &#39;.*[aeiou]$&#39;</code></pre>
<p>either이라는 조건이 있으므로 맨 앞글자가 모음으로 시작하지 않고
모음으로 끝나지 않는 조건을 OR로 연결시켜준다.</p>
]]></description>
        </item>
    </channel>
</rss>