<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>DataStory</title>
    <link>https://hyohyokang.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 10 Apr 2026 12:05:00 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>효효캉</managingEditor>
    <item>
      <title>[SQL] 2. LOGIC</title>
      <link>https://hyohyokang.tistory.com/10</link>
      <description>&lt;p&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;benn.college_football_players&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot 2021-01-27 at 3.14.07 PM.png&quot; data-origin-width=&quot;1450&quot; data-origin-height=&quot;322&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byvzqx/btqUYfuL8dA/z3knCpbZIHlvfpp0JG6t61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byvzqx/btqUYfuL8dA/z3knCpbZIHlvfpp0JG6t61/img.png&quot; data-alt=&quot;benn.college_football_players database&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byvzqx/btqUYfuL8dA/z3knCpbZIHlvfpp0JG6t61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyvzqx%2FbtqUYfuL8dA%2Fz3knCpbZIHlvfpp0JG6t61%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-27 at 3.14.07 PM.png&quot; data-origin-width=&quot;1450&quot; data-origin-height=&quot;322&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;benn.college_football_players database&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.&amp;nbsp;CASE&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;SELECT &lt;/b&gt;절에 사용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CASE WHEN &lt;/b&gt;__[case 1]&lt;b&gt;__ THEN _&lt;/b&gt;[case 2]&lt;b&gt;__ ELSE&lt;/b&gt;(optional) &lt;b&gt;END&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WHEN&lt;/b&gt;과&lt;b&gt; THEN &lt;/b&gt;사이에 &lt;b&gt;WHERE&lt;/b&gt; 같은 conditional statment 사용가능
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;multiple conditional statment 사용 시 &lt;b&gt;AND&lt;/b&gt; , &lt;b&gt;OR&lt;/b&gt; 사용&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WHEN&lt;/b&gt;, &lt;b&gt;ELSE&lt;/b&gt; 여러번 사용 가능&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt; player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;year,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #006dd7; background-color: #f6e199;&quot;&gt;&lt;b&gt;CASE&amp;nbsp;WHEN&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;year&amp;nbsp;=&amp;nbsp;'SR'&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;&lt;/span&gt;'yes'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;ELSE&amp;nbsp;&lt;/b&gt;&lt;/span&gt;NULL&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;END&amp;nbsp;AS&lt;/b&gt;&lt;/span&gt;&amp;nbsp;is_a_senior&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&lt;/b&gt;benn.college_football_players&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-27 at 3.13.09 PM.png&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;256&quot; width=&quot;382&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qNs8f/btqURuz0uMH/AWp8T5JexmTJ9FXLoWgjxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qNs8f/btqURuz0uMH/AWp8T5JexmTJ9FXLoWgjxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qNs8f/btqURuz0uMH/AWp8T5JexmTJ9FXLoWgjxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqNs8f%2FbtqURuz0uMH%2FAWp8T5JexmTJ9FXLoWgjxk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-27 at 3.13.09 PM.png&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;256&quot; width=&quot;382&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** ELSE: optional. provides a way to capture values not specified in WHEN/THEN statemennt&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** CASE + WHEN ~~~ THEN is necessary&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;year,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SR'&amp;nbsp;THEN&amp;nbsp;'yes'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ELSE 'no' END AS is_a_senior&amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;-- SR이 아닐경우&amp;nbsp; NULL이 아니라 'no'로 표시&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Write a query that includes a column that is flagged &quot;yes&quot; when a player is from California, and&amp;nbsp;sort&amp;nbsp;the&amp;nbsp;results&amp;nbsp;with&amp;nbsp;those&amp;nbsp;players&amp;nbsp;first.&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;A: SELECT player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;state,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;state&amp;nbsp;=&amp;nbsp;'CA'&amp;nbsp;THEN&amp;nbsp;'yes'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;NULL&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;is_from_Cali&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.2. Adding multiple conditions to CASE&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&amp;nbsp;&lt;/b&gt;player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;weight,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;nbsp; CASE WHEN&lt;/b&gt; weight &amp;gt; 250 &lt;b&gt;THEN&lt;/b&gt; 'over 250'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHEN&lt;/b&gt; weight &amp;gt; 200 &lt;b&gt;THEN&lt;/b&gt; '201-250'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt; weight &amp;gt; 175 &lt;b&gt;THEN&lt;/b&gt; '176-200'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt; '175 or under' &lt;b&gt;END AS&lt;/b&gt; weight_group&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;--&amp;nbsp;better&amp;nbsp;way&amp;nbsp;to&amp;nbsp;do&amp;nbsp;this&amp;nbsp;is&amp;nbsp;the&amp;nbsp;following:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;player_name,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;weight,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;&lt;/b&gt;weight&amp;nbsp;&amp;gt;&amp;nbsp;250&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'over&amp;nbsp;250'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;weight&amp;nbsp;&amp;gt;&amp;nbsp;200&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;weight&amp;nbsp;&amp;lt;=250&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'201-250'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;weight&amp;nbsp;&amp;gt;&amp;nbsp;175&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;weight&amp;nbsp;&amp;lt;=&amp;nbsp;200&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'176-200'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'175&amp;nbsp;or&amp;nbsp;under'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;weight_group&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Write a query that includes players' names and a column that classifies them into four categories based on height. Keep in mind that the answer we provide is only one of many possible answers, since you could divide players' heights&amp;nbsp;in&amp;nbsp;many&amp;nbsp;ways.&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;CASE&amp;nbsp;WHEN&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;gt;80&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'over&amp;nbsp;80'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;gt;70&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;lt;=80&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'71-80'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;gt;60&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;lt;=70&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'61-70'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;gt;50&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;height&amp;nbsp;&amp;lt;=60&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'51-60'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'under&amp;nbsp;50'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;height_group&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**WHEN과 THEN 사이에 conditional operator 추가가능; AND OR&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;player_name,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;AND&lt;/b&gt;&amp;nbsp;position&amp;nbsp;=&amp;nbsp;'WR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'frosh_wr'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;&lt;b&gt;NULL&lt;/b&gt;&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;sample_case_statement&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;*,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CASE&amp;nbsp;WHEN&lt;/b&gt;&amp;nbsp;year='JR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'junior'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;='SR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'senior'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;NULL&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;junior_or_senior&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Q: &lt;span&gt;Write a query that selects all columns from&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;benn.college_football_players&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and adds an additional column that displays the player's name if that player is a junior or senior.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;*,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;&lt;b&gt;IN&lt;/b&gt;&amp;nbsp;('JR',&amp;nbsp;'SR')&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;player_name&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;NULL&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;upperclass_player_name&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt; benn.college_football_players&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'FR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'Not&amp;nbsp;FR'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;year_group,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&lt;b&gt;GROUP&lt;/b&gt;&amp;nbsp;&lt;b&gt;BY&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'FR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'Not&amp;nbsp;FR'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;--&amp;nbsp;COUNT(1)&amp;nbsp;same&amp;nbsp;as&amp;nbsp;COUNT(*)&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;fr_count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHERE&lt;/b&gt;&amp;nbsp;year&amp;nbsp;='FR'&lt;/span&gt;&amp;nbsp;--&amp;nbsp;why&amp;nbsp;not&amp;nbsp;use&amp;nbsp;this?&amp;nbsp;WHERE&amp;nbsp;only&amp;nbsp;allows&amp;nbsp;you&amp;nbsp;to&amp;nbsp;count&amp;nbsp;one&amp;nbsp;condition&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'FR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SO'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'SO'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'JR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'JR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'SR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'No&amp;nbsp;Year&amp;nbsp;Data'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;year_group,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;GROUP&lt;/b&gt;&amp;nbsp;&lt;b&gt;BY&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;--&amp;nbsp;or&amp;nbsp;year_group&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;nbsp;or&amp;nbsp;BY&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;year&amp;nbsp;=&amp;nbsp;~&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;counts&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;300lb+&amp;nbsp;players&amp;nbsp;for&amp;nbsp;each&amp;nbsp;of&amp;nbsp;the&amp;nbsp;following&amp;nbsp;regions:&amp;nbsp;West&amp;nbsp;Coast&amp;nbsp;(CA,&amp;nbsp;OR,&amp;nbsp;WA),&amp;nbsp;Texas,&amp;nbsp;and&amp;nbsp;Other&amp;nbsp;(Everywhere&amp;nbsp;else).&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;state&amp;nbsp;&lt;b&gt;IN&lt;/b&gt;&amp;nbsp;('CA',&amp;nbsp;'OR',&amp;nbsp;'WA')&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'West&amp;nbsp;Coast'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;state&amp;nbsp;=&amp;nbsp;'TX'&amp;nbsp;THEN&amp;nbsp;'Texas'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'Other'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;Area_Category,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(1)&amp;nbsp;as&amp;nbsp;count&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHERE&lt;/b&gt;&amp;nbsp;weight&amp;nbsp;&amp;gt;=&amp;nbsp;300&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;GROUP&lt;/b&gt;&amp;nbsp;&lt;b&gt;BY&lt;/b&gt;&amp;nbsp;Area_Category&lt;/span&gt;&amp;nbsp;--&amp;nbsp;or&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;calculates&amp;nbsp;combined&amp;nbsp;weight&amp;nbsp;of&amp;nbsp;all&amp;nbsp;underclass&amp;nbsp;players(FR/SO)&amp;nbsp;in&amp;nbsp;California&amp;nbsp;as&amp;nbsp;well&amp;nbsp;as&amp;nbsp;the&amp;nbsp;combined&amp;nbsp;weight&amp;nbsp;of&amp;nbsp;all&amp;nbsp;upperclass&amp;nbsp;players&amp;nbsp;(JR/SR)&amp;nbsp;in&amp;nbsp;California&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;&lt;b&gt;IN&lt;/b&gt;&amp;nbsp;('FR',&amp;nbsp;'SO')&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'underclass&amp;nbsp;players'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;&lt;b&gt;IN&lt;/b&gt;&amp;nbsp;('JR',&amp;nbsp;'SR')&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'uppderclass&amp;nbsp;players'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;class_division,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;SUM&lt;/b&gt;(weight)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;sum_weight&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHERE&lt;/b&gt;&amp;nbsp;state&amp;nbsp;=&amp;nbsp;'CA'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;GROUP&lt;/b&gt;&amp;nbsp;&lt;b&gt;BY&lt;/b&gt;&amp;nbsp;class_division&lt;/span&gt;&amp;nbsp;--or&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'FR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SO'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'SO'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'JR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'JR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'SR'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;'No&amp;nbsp;Year&amp;nbsp;Data'&amp;nbsp;&lt;b&gt;END&lt;/b&gt;&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;year_group,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&lt;b&gt;GROUP&lt;/b&gt;&amp;nbsp;&lt;b&gt;BY&lt;/b&gt;&amp;nbsp;1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;--&amp;nbsp;horizontal&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;b&gt;ELSE&lt;/b&gt;&amp;nbsp;&lt;b&gt;NULL&lt;/b&gt;&amp;nbsp;&lt;b&gt;END&lt;/b&gt;)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;fr_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(&lt;b&gt;CASE&lt;/b&gt;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'SO'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;b&gt;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;&lt;/b&gt;so_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT(CASE&amp;nbsp;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'JR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;b&gt;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&lt;/b&gt;&amp;nbsp;jr_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT(CASE&amp;nbsp;WHEN&amp;nbsp;&lt;/b&gt;year&amp;nbsp;=&amp;nbsp;'SR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;b&gt;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&lt;/b&gt;&amp;nbsp;sr_count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;displays&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;players&amp;nbsp;in&amp;nbsp;each&amp;nbsp;state,&amp;nbsp;with&amp;nbsp;FR,&amp;nbsp;SO,&amp;nbsp;JR,&amp;nbsp;and&amp;nbsp;SR&amp;nbsp;players&amp;nbsp;in&amp;nbsp;separate&amp;nbsp;columns&amp;nbsp;and&amp;nbsp;another&amp;nbsp;column&amp;nbsp;for&amp;nbsp;the&amp;nbsp;total&amp;nbsp;number&amp;nbsp;of&amp;nbsp;players.&amp;nbsp;Order&amp;nbsp;results&amp;nbsp;such&amp;nbsp;that&amp;nbsp;states&amp;nbsp;with&amp;nbsp;the&amp;nbsp;most&amp;nbsp;players&amp;nbsp;come&amp;nbsp;first.&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&amp;nbsp;COUNT&lt;/b&gt;(&lt;b&gt;CASE&amp;nbsp;WHEN&amp;nbsp;&lt;/b&gt;year&amp;nbsp;=&amp;nbsp;'FR'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;1&amp;nbsp;&lt;b&gt;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&lt;/b&gt;&amp;nbsp;fr_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT&lt;/b&gt;(&lt;b&gt;CASE&amp;nbsp;WHEN&amp;nbsp;&lt;/b&gt;year&amp;nbsp;=&amp;nbsp;'SO'&amp;nbsp;&lt;b&gt;THEN&amp;nbsp;&lt;/b&gt;1&lt;b&gt;&amp;nbsp;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&lt;/b&gt;&amp;nbsp;so_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT(CASE&amp;nbsp;WHEN&lt;/b&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;'JR'&amp;nbsp;&lt;b&gt;THEN&amp;nbsp;&lt;/b&gt;1&lt;b&gt;&amp;nbsp;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;&lt;/b&gt;jr_count,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;COUNT(CASE&amp;nbsp;WHEN&amp;nbsp;&lt;/b&gt;year&amp;nbsp;='SR'&amp;nbsp;THEN&amp;nbsp;1&amp;nbsp;ELSE&amp;nbsp;NULL&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;sr_count,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;total_players,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;state&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&lt;/b&gt;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;&lt;/b&gt;state&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;&lt;/b&gt;total_players&amp;nbsp;&lt;b&gt;DESC&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;shows&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;players&amp;nbsp;at&amp;nbsp;schools&amp;nbsp;with&amp;nbsp;names&amp;nbsp;that&amp;nbsp;start&amp;nbsp;with&amp;nbsp;A&amp;nbsp;through&amp;nbsp;M,&amp;nbsp;and&amp;nbsp;the&amp;nbsp;number&amp;nbsp;at&amp;nbsp;schools&amp;nbsp;with&amp;nbsp;names&amp;nbsp;starting&amp;nbsp;with&amp;nbsp;N&amp;nbsp;-&amp;nbsp;Z.&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SELECT&amp;nbsp;CASE&amp;nbsp;WHEN&lt;/b&gt;&amp;nbsp;school_name&amp;nbsp;&amp;lt;&amp;nbsp;'n'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'A-M'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;WHEN&lt;/b&gt;&amp;nbsp;school_name&amp;nbsp;&amp;gt;=&amp;nbsp;'n'&amp;nbsp;&lt;b&gt;THEN&lt;/b&gt;&amp;nbsp;'N-Z'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;NULL&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;&lt;/b&gt;school_name_group,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT&lt;/b&gt;(1)&amp;nbsp;&lt;b&gt;AS&lt;/b&gt;&amp;nbsp;players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&lt;/b&gt;benn.college_football_players&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;GROUP&amp;nbsp;BY&lt;/b&gt;&amp;nbsp;school_name_group&lt;/span&gt;&amp;nbsp;--or&amp;nbsp;1&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;</description>
      <category>DBMS</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/10</guid>
      <comments>https://hyohyokang.tistory.com/10#entry10comment</comments>
      <pubDate>Wed, 27 Jan 2021 15:18:59 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 1. Aggregate Functions</title>
      <link>https://hyohyokang.tistory.com/9</link>
      <description>&lt;p&gt;We are going to use the following database:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot 2021-01-27 at 2.48.34 PM.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;318&quot; width=&quot;459&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUkaCu/btqUSpLULew/ISuG4682x0IKgcIE19AyPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUkaCu/btqUSpLULew/ISuG4682x0IKgcIE19AyPK/img.png&quot; data-alt=&quot;tutorial.aapl_historical_stock 데이터베이스&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUkaCu/btqUSpLULew/ISuG4682x0IKgcIE19AyPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUkaCu%2FbtqUSpLULew%2FISuG4682x0IKgcIE19AyPK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-27 at 2.48.34 PM.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;318&quot; width=&quot;459&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;tutorial.aapl_historical_stock 데이터베이스&amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;1. Aggregate functions in SQL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;SELECT / HAVING 에 사용 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;COUNT&lt;/b&gt;: 특정 칼럼에 몇개의 행이 있는지 count&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;SUM&lt;/b&gt;: 특정 칼럼에 있는 값의 총합&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;MIN &amp;amp; MAX&lt;/b&gt;: 특정 칼럼의 가장 작은(earliest date, smallest, closest to &quot;A&quot;) / 큰 값 &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;AVG&lt;/b&gt;:&amp;nbsp;calculates&amp;nbsp;average&amp;nbsp;of&amp;nbsp;group&amp;nbsp;of&amp;nbsp;selected&amp;nbsp;values&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Basic Tutorial 에서 말한 것들은 across rows. 여기는 칼럼 전체에 관한 계산&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;2. Additional Basics of SQL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;GROUP BY :&amp;nbsp;&lt;/b&gt;COUNT, AVG, SUM: aggregate across entire table. What if you want to aggregate only part of the table? Use groupby&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;ORDER BY&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;HAVING :&amp;nbsp;&lt;/b&gt;filter the groupby result. WHERE clause doesn't work bc it doesn't allow you to filter aggregate columns&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1.1 Counting all rows&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(*)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&amp;nbsp;&amp;nbsp;--&amp;nbsp;returns&amp;nbsp;total&amp;nbsp;number&amp;nbsp;of&amp;nbsp;rows&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1.2 Counting individual columns&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(high)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&amp;nbsp;&amp;nbsp;--&amp;nbsp;counts&amp;nbsp;all&amp;nbsp;the&amp;nbsp;rows&amp;nbsp;except&amp;nbsp;those&amp;nbsp;with&amp;nbsp;NULL&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;to&amp;nbsp;count&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;non-null&amp;nbsp;rows&amp;nbsp;in&amp;nbsp;the&amp;nbsp;low&amp;nbsp;column&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(low)AS&amp;nbsp;low&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;--&amp;nbsp;If&amp;nbsp;you&amp;nbsp;don't&amp;nbsp;specify&amp;nbsp;the&amp;nbsp;column&amp;nbsp;name,&amp;nbsp;result&amp;nbsp;will&amp;nbsp;be&amp;nbsp;just&amp;nbsp;shown&amp;nbsp;as&amp;nbsp;COUNT&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.3 Counting non-numerical columns&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(date)&amp;nbsp;AS&amp;nbsp;count_of_date&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(date)&amp;nbsp;AS&amp;nbsp;&quot;Count&amp;nbsp;Of&amp;nbsp;Date&quot;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;--&amp;nbsp;if&amp;nbsp;you&amp;nbsp;need&amp;nbsp;to&amp;nbsp;use&amp;nbsp;spaces,&amp;nbsp;use&amp;nbsp;double&amp;nbsp;quotes&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;determines&amp;nbsp;counts&amp;nbsp;of&amp;nbsp;every&amp;nbsp;single&amp;nbsp;column&lt;br /&gt;Which&amp;nbsp;column&amp;nbsp;has&amp;nbsp;the&amp;nbsp;most&amp;nbsp;null&amp;nbsp;values?&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;COUNT(year)&amp;nbsp;AS&amp;nbsp;year,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(month)&amp;nbsp;AS&amp;nbsp;month,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(open)&amp;nbsp;AS&amp;nbsp;open,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(high)&amp;nbsp;AS&amp;nbsp;high,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(low)&amp;nbsp;AS&amp;nbsp;low,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(close)&amp;nbsp;AS&amp;nbsp;close,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(volume)&amp;nbsp;AS&amp;nbsp;volume&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. SUM&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;-&amp;nbsp;COUNT&amp;nbsp;는&amp;nbsp;그냥&amp;nbsp;행의&amp;nbsp;갯수를&amp;nbsp;계산&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;-&amp;nbsp;SUM&amp;nbsp;은&amp;nbsp;실제&amp;nbsp;값에&amp;nbsp;관한&amp;nbsp;계산&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**Aggregate&amp;nbsp;vertically!&amp;nbsp;If&amp;nbsp;you&amp;nbsp;want&amp;nbsp;to&amp;nbsp;calculate&amp;nbsp;across&amp;nbsp;rows,&amp;nbsp;use&amp;nbsp;simple&amp;nbsp;arithmetic&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;SUM(volume)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;to&amp;nbsp;calculate&amp;nbsp;the&amp;nbsp;average&amp;nbsp;opening&amp;nbsp;price&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;SUM(open)/COUNT(open)&amp;nbsp;AS&amp;nbsp;&quot;Average&amp;nbsp;Opening&amp;nbsp;Price&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. MIN/MAX&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT MIN(volume) AS min_volume,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAX(volume)&amp;nbsp;AS&amp;nbsp;max_volume&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;What&amp;nbsp;ws&amp;nbsp;Apple's&amp;nbsp;lowest&amp;nbsp;stock&amp;nbsp;price?&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;MIN(low)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Highest&amp;nbsp;single&amp;nbsp;day&amp;nbsp;increase&amp;nbsp;in&amp;nbsp;stock&amp;nbsp;price?&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;MAX(close-open)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. AVG&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**Limitations: &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;ONLY&amp;nbsp;can&amp;nbsp;use&amp;nbsp;for&amp;nbsp;numerical&amp;nbsp;columns&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;IGNORES&amp;nbsp;NULLS&amp;nbsp;completely&amp;nbsp;-&amp;gt;&amp;nbsp;You&amp;nbsp;cannot&amp;nbsp;treat&amp;nbsp;null&amp;nbsp;value&amp;nbsp;as&amp;nbsp;0&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;AVG(high)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;high&amp;nbsp;IS&amp;nbsp;NOT&amp;nbsp;NULL&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;AVG(high)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;--&amp;nbsp;2&amp;nbsp;queries&amp;nbsp;above&amp;nbsp;have&amp;nbsp;the&amp;nbsp;same&amp;nbsp;result&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;calcualtes&amp;nbsp;the&amp;nbsp;average&amp;nbsp;daily&amp;nbsp;trade&amp;nbsp;volumns&amp;nbsp;for&amp;nbsp;Apple&amp;nbsp;Stock&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;AVG(volume)&amp;nbsp;as&amp;nbsp;avg_volume&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;b&gt;5. GROUP BY&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;5.1 SQL GROUP BY clause&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;month,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COUNT(*)&amp;nbsp;AS&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Calculate&amp;nbsp;the&amp;nbsp;total&amp;nbsp;number&amp;nbsp;of&amp;nbsp;shares&amp;nbsp;traded&amp;nbsp;each&amp;nbsp;month.&amp;nbsp;Order&amp;nbsp;results&amp;nbsp;chronologivally.&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;month,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUM(volume)&amp;nbsp;AS&amp;nbsp;volume_sum&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.2&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;column&amp;nbsp;numbers&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&amp;nbsp;month,&amp;nbsp;COUNT(*)&amp;nbsp;AS&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;1,2&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;b&gt;5.3&amp;nbsp;Using&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;with&amp;nbsp;ORDER&amp;nbsp;BY&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&amp;nbsp;month,&amp;nbsp;COUNT(*)&amp;nbsp;AS&amp;nbsp;count&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;--&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;month,&amp;nbsp;year&amp;nbsp;:&amp;nbsp;totally&amp;nbsp;different&amp;nbsp;result&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;to&amp;nbsp;calculate&amp;nbsp;the&amp;nbsp;average&amp;nbsp;daily&amp;nbsp;price&amp;nbsp;change&amp;nbsp;in&amp;nbsp;Apple&amp;nbsp;stock,&amp;nbsp;grouped&amp;nbsp;by&amp;nbsp;year&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&amp;nbsp;AVG(high&amp;nbsp;-&amp;nbsp;low)&amp;nbsp;AS&amp;nbsp;avg_daily_change&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;year&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;calculates&amp;nbsp;the&amp;nbsp;lowest&amp;nbsp;and&amp;nbsp;highest&amp;nbsp;prices&amp;nbsp;that&amp;nbsp;Apple&amp;nbsp;stock&amp;nbsp;achieved&amp;nbsp;each&amp;nbsp;month&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;year,&amp;nbsp;month,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIN(low)&amp;nbsp;AS&amp;nbsp;min_price_monthly,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAX(high)&amp;nbsp;AS&amp;nbsp;max_price_monthly&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;month,&amp;nbsp;year&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. HAVING&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT year, month, MAX(high) AS month_high&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.aapl_historical_stock_price&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;HAVING&amp;nbsp;MAX(high)&amp;nbsp;&amp;gt;&amp;nbsp;400&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;month&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DBMS</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/9</guid>
      <comments>https://hyohyokang.tistory.com/9#entry9comment</comments>
      <pubDate>Wed, 27 Jan 2021 15:02:39 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 0. Basic SQL</title>
      <link>https://hyohyokang.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. AS&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. (Filtering) Comparison Operators&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. (Filtering)Logical Operators&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;비슷한 값 매치 ; &quot;column_name&quot; LIKE 'Snoop%' -&amp;gt; Case sensitive&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;ILIKE:&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &quot;column_name&quot; ILIKE 'snoop%' -&amp;gt; not case sensitive 대소문자 상관없음!&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;IN: &lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;포함하고 싶은 값의 리스트 설정&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;BETWEEN:&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; certain range에 해당하는 rows 셀렉 -&amp;gt; HAS to be paired with AND operator &lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;IS NULL:&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 주어진 칼럼에 데이터 없는 rows 셀렉&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;AND:&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 2가지 컨디션 모두 충족하는 행 선택&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;OR: &lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;either two conditions 컨디션 충족하는 행 선택&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;NOT:&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;certain&amp;nbsp;condition에&amp;nbsp;match하지&amp;nbsp;않는&amp;nbsp;행&amp;nbsp;선택&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. (Sorting )ORDER BY&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Using AS&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;LIMIT&amp;nbsp;5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;west&amp;nbsp;AS&amp;nbsp;&quot;West&amp;nbsp;Region&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**only returns capital letters if covered with double quotes&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Comparison Operators&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;= , &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=, &amp;lt;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;west&amp;nbsp;AS&amp;nbsp;West_Region,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;south&amp;nbsp;AS&amp;nbsp;South_Region&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;west&amp;nbsp;&amp;gt;&amp;nbsp;50&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;south&amp;nbsp;&amp;lt;=&amp;nbsp;20&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;month_name&amp;nbsp;=&amp;nbsp;'February'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** month_name is &quot;n&quot; or earlier&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**&quot;n&quot;보다 큰걸로 설정하면 &quot;na&quot;부터 시작&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;month_name&amp;nbsp;&amp;lt;&amp;nbsp;'o'&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Arithmetic in SQL&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Using + - * / : ONLY IN SAME ROW&lt;/li&gt;
&lt;li&gt;If you want to combine across diff rows, try aggregate functions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;south&amp;nbsp;+&amp;nbsp;west&amp;nbsp;+&amp;nbsp;midwest&amp;nbsp;+&amp;nbsp;northeast&amp;nbsp;AS&amp;nbsp;Four_Regions&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;west&amp;nbsp;&amp;gt;&amp;nbsp;(midwest&amp;nbsp;+&amp;nbsp;northeast)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT south/(south+west+midwest+northeast)*100 AS south_perc,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;west/(south+west+midwest+northeast)*100 AS west_perc,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;midwest/(south+west+midwest+northeast)*100 AS midwest_perc,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;northeast/(south+west+midwest+northeast)*100 AS northeast_perc&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.us_housing_units&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;&amp;gt;=&amp;nbsp;2000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp;Logical Operators&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;0.DB&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;LIMIT&amp;nbsp;5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.&amp;nbsp;LIKE&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;double quote: used when 칼럼 이름 표시할때&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;LIKE&amp;nbsp;'Snoop%'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.1.&amp;nbsp;ILIKE&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'snoop%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;LIMIT&amp;nbsp;40&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;**underscore ; _ used for 특정 문자 대체할때&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;artist&amp;nbsp;ILIKE&amp;nbsp;'Dr_ke'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;returns&amp;nbsp;all&amp;nbsp;rows&amp;nbsp;for&amp;nbsp;which&amp;nbsp;Ludacris&amp;nbsp;was&amp;nbsp;a&amp;nbsp;member&amp;nbsp;of&amp;nbsp;the&amp;nbsp;group&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%Ludacris%'&lt;/span&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;returns&amp;nbsp;all&amp;nbsp;rows&amp;nbsp;for&amp;nbsp;which&amp;nbsp;the&amp;nbsp;first&amp;nbsp;artist&amp;nbsp;listed&amp;nbsp;in&amp;nbsp;the&amp;nbsp;group&amp;nbsp;has&amp;nbsp;a&amp;nbsp;name&amp;nbsp;that&amp;nbsp;begins&amp;nbsp;with&amp;nbsp;&quot;DJ&quot;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;LIKE&amp;nbsp;'DJ%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;2.&amp;nbsp;IN&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;IN&amp;nbsp;(1,2,3)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;artist&amp;nbsp;IN&amp;nbsp;('Taylor&amp;nbsp;Swift',&amp;nbsp;'Usher',&amp;nbsp;'Ludacris')&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**Comparison Operator에서처럼 글자는 싱글 quote!&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;shows&amp;nbsp;all&amp;nbsp;of&amp;nbsp;the&amp;nbsp;entries&amp;nbsp;for&amp;nbsp;Elvis&amp;nbsp;and&amp;nbsp;M.C.&amp;nbsp;Hammer&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%Hammer%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;IN&amp;nbsp;('M.C.&amp;nbsp;Hammer',&amp;nbsp;'Hammer',&amp;nbsp;'Elvis&amp;nbsp;Presley')&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;b&gt;3.&amp;nbsp;BETWEEN&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE year_rank BETWEEN 5 AND 10&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** 5랑 10 포함&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** 위 쿼리는 아래 쿼리와 같음:&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;&amp;gt;=&amp;nbsp;5&amp;nbsp;AND&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;10&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Q: Write a query that shows all top 100 songs from Jan 1, 1985 through Dec 31, 1990&lt;br /&gt;&amp;nbsp;&amp;nbsp;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;between&amp;nbsp;1985&amp;nbsp;AND&amp;nbsp;1990&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.&amp;nbsp;IS&amp;nbsp;NULL&amp;nbsp;&lt;/b&gt;:&amp;nbsp;allows&amp;nbsp;you&amp;nbsp;to&amp;nbsp;exclude&amp;nbsp;rows&amp;nbsp;with&amp;nbsp;missing&amp;nbsp;data&amp;nbsp;from&amp;nbsp;results&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;artist&amp;nbsp;IS&amp;nbsp;NULL&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** artist = NULL 은 에러남. arithemtic에 NULL VALUE 사용 불가&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;shows&amp;nbsp;all&amp;nbsp;of&amp;nbsp;the&amp;nbsp;rows&amp;nbsp;for&amp;nbsp;which&amp;nbsp;song_name&amp;nbsp;is&amp;nbsp;NULL&amp;nbsp;&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;song_name&amp;nbsp;IS&amp;nbsp;NULL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.&amp;nbsp;AND&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2012&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;10&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%feat%'&lt;/span&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;surfaces&amp;nbsp;all&amp;nbsp;rows&amp;nbsp;for&amp;nbsp;top&amp;nbsp;10&amp;nbsp;hits&amp;nbsp;for&amp;nbsp;which&amp;nbsp;Ludacris&amp;nbsp;is&amp;nbsp;part&amp;nbsp;of&amp;nbsp;the&amp;nbsp;group&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;10&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%ludacris%'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;surfaces&amp;nbsp;the&amp;nbsp;top-ranked&amp;nbsp;records&amp;nbsp;in&amp;nbsp;1990,&amp;nbsp;2000,&amp;nbsp;and&amp;nbsp;2010&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;=&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year&amp;nbsp;IN&amp;nbsp;(1990,&amp;nbsp;2000,&amp;nbsp;2010)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;lists&amp;nbsp;all&amp;nbsp;songs&amp;nbsp;from&amp;nbsp;1960s&amp;nbsp;with&amp;nbsp;&quot;love&quot;&amp;nbsp;in&amp;nbsp;the&amp;nbsp;title&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;BETWEEN&amp;nbsp;1960&amp;nbsp;AND&amp;nbsp;1969&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;song_name&amp;nbsp;ILIKE&amp;nbsp;'%love%'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6.&amp;nbsp;OR&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT *&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;(&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%macklemore%'&amp;nbsp;OR&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%timberlake%')&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**year 2013을 만족하는 것중에서 macklemore, timberlake 들어가는 것들. 2013으로 먼저 걸러냄&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;returns&amp;nbsp;all&amp;nbsp;rows&amp;nbsp;for&amp;nbsp;top&amp;nbsp;10&amp;nbsp;songs&amp;nbsp;that&amp;nbsp;featured&amp;nbsp;either&amp;nbsp;Katy&amp;nbsp;PErry&amp;nbsp;or&amp;nbsp;Bon&amp;nbsp;Jovi&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;10&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;(&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%katy&amp;nbsp;perry%'&amp;nbsp;OR&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%bon&amp;nbsp;jovi%')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;returns&amp;nbsp;all&amp;nbsp;songs&amp;nbsp;with&amp;nbsp;titles&amp;nbsp;that&amp;nbsp;contain&amp;nbsp;the&amp;nbsp;&lt;br /&gt;word&amp;nbsp;&quot;California&quot;&amp;nbsp;in&amp;nbsp;either&amp;nbsp;the&amp;nbsp;1970s&amp;nbsp;or&amp;nbsp;1990s&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;song_name&amp;nbsp;LIKE&amp;nbsp;'%California%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;(year&amp;nbsp;BETWEEN&amp;nbsp;1970&amp;nbsp;AND&amp;nbsp;1979&amp;nbsp;OR&amp;nbsp;year&amp;nbsp;BETWEEN&amp;nbsp;1990&amp;nbsp;AND&amp;nbsp;1999)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Q:&amp;nbsp;Write&amp;nbsp;a&amp;nbsp;query&amp;nbsp;that&amp;nbsp;lists&amp;nbsp;all&amp;nbsp;top-100&amp;nbsp;recordings&amp;nbsp;that&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;feature&amp;nbsp;Dr.&amp;nbsp;Dre&amp;nbsp;before&amp;nbsp;2001&amp;nbsp;or&amp;nbsp;after&amp;nbsp;2009.&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%dr.&amp;nbsp;dre%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;(year&amp;nbsp;&amp;lt;=&amp;nbsp;2000&amp;nbsp;OR&amp;nbsp;year&amp;nbsp;&amp;gt;=&amp;nbsp;2010)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.&amp;nbsp;NOT&lt;/b&gt;&amp;nbsp;&amp;nbsp;:&amp;nbsp;can&amp;nbsp;put&amp;nbsp;before&amp;nbsp;any&amp;nbsp;CONDITIONAL&amp;nbsp;STATEMENT&amp;nbsp;to&amp;nbsp;select&amp;nbsp;rows&amp;nbsp;which&amp;nbsp;that&amp;nbsp;statement&amp;nbsp;is&amp;nbsp;false&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year_rank&amp;nbsp;NOT&amp;nbsp;BETWEEN&amp;nbsp;2&amp;nbsp;AND&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;**This does not make sense, just use comparative operator&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT *&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year_rank&amp;nbsp;NOT&amp;nbsp;&amp;gt;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;##This&amp;nbsp;will&amp;nbsp;give&amp;nbsp;out&amp;nbsp;error.&amp;nbsp;Rather,&amp;nbsp;use:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**NOT commonly used with LIKE &amp;amp; IS NOT NULL&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&quot;group&quot;&amp;nbsp;NOT&amp;nbsp;LIKE&amp;nbsp;'%macklemore%'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Write a query that returns all rows for songs that were on the charts&amp;nbsp;in&amp;nbsp;2013&amp;nbsp;and&amp;nbsp;do&amp;nbsp;not&amp;nbsp;contain&amp;nbsp;the&amp;nbsp;letter&amp;nbsp;&quot;a&quot;&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND song_name NOT LIKE '%a%'&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;song_name&amp;nbsp;NOT&amp;nbsp;ILIKE&amp;nbsp;'%a%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2013&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Now done with filtering. Get onto Sorting&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;ORDER BY&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;reorder results based on the data in one or more COLUMNS!!!&lt;/li&gt;
&lt;li&gt;Default:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;a to z (ascending order) ; 작은것부터 큰거&lt;/li&gt;
&lt;li&gt;ORDER BY 'column_name' DESC : 큰것부터 시작&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT *&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;artist&amp;nbsp;DESC&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;Most&amp;nbsp;recent&amp;nbsp;years&amp;nbsp;come&amp;nbsp;FIRST&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;Top&amp;nbsp;rank&amp;nbsp;songs&amp;nbsp;comes&amp;nbsp;before&amp;nbsp;lower-ranked&amp;nbsp;songs&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=3&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year&amp;nbsp;DESC,&amp;nbsp;year_rank&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**year DESC 먼저 sort 하고 그 다음에 year_rank&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;**예를 들어, 2013년에 year rank 1,2,3 그 다음 행에 2012 년에 rank 1,2,3,....&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;&amp;lt;=&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year_rank,&amp;nbsp;year&amp;nbsp;DESC&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** year rank로 먼저 1순위부터 추리고 거기서 year 가장 최근거 sort&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;i&gt;** 예를 들어, 2013, 2012, 2011, ...., 1969 1순위....... 2013, 2012, ..., 1969 3순위 순&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Write a query that returns all rows from 2010 ordered by rank, with artists ordered alphabetically for each song.&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year&amp;nbsp;=&amp;nbsp;2010&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year_rank,&amp;nbsp;artist&lt;/span&gt;&amp;nbsp;&lt;br /&gt;--&amp;nbsp;comments&lt;br /&gt;/*also&amp;nbsp;can&amp;nbsp;leave&amp;nbsp;comment&lt;br /&gt;across&amp;nbsp;different&amp;nbsp;lines&amp;nbsp;*/&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Q: Write a query that shows all rows for which T-Pain was a group memeber, ordered by rank on the charts, from lowest to highest rank (100 to 1)&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;&quot;group&quot;&amp;nbsp;ILIKE&amp;nbsp;'%t-pain%'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year_rank&amp;nbsp;DESC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Write a query that returns songs that ranked between 10 and 20 (inclusive) in 1993, 2003, or 2013 order by year and rank and&amp;nbsp;leave a comment on each line of WHERE clause to indicate what the line does&amp;nbsp;&lt;br /&gt;A:&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;SELECT&amp;nbsp;*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;tutorial.billboard_top_100_year_end&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;year_rank&amp;nbsp;BETWEEN&amp;nbsp;10&amp;nbsp;AND&amp;nbsp;20&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;year&amp;nbsp;IN&amp;nbsp;(1993,&amp;nbsp;2003,&amp;nbsp;2013)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp;&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;year,&amp;nbsp;year_rank&lt;/span&gt;&lt;/p&gt;</description>
      <category>DBMS</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/8</guid>
      <comments>https://hyohyokang.tistory.com/8#entry8comment</comments>
      <pubDate>Thu, 21 Jan 2021 17:47:31 +0900</pubDate>
    </item>
    <item>
      <title>0. An Introduction to statistical learning</title>
      <link>https://hyohyokang.tistory.com/7</link>
      <description>&lt;p&gt;대학원에서 참고서적으로 읽었던 &quot;An Introduction to Statistical Learning with Applications in R&quot;을 참고하여 머신러닝의 기본과 프로젝트에서 다루었던 모델을 정리하려 한다. 원서는 감사하게도 무료로 온라인 pdf 버전을 다운 받을 수 있다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://statlearning.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;statlearning.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1611042938469&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Introduction to Statistical Learning&quot; data-og-description=&quot;&quot; data-og-host=&quot;statlearning.com&quot; data-og-source-url=&quot;https://statlearning.com/&quot; data-og-url=&quot;https://statlearning.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FTPl1/hyIZ178zyE/7hckn8yZvdjDWUogTWomsk/img.jpg?width=816&amp;amp;height=612&amp;amp;face=109_168_724_254,https://scrap.kakaocdn.net/dn/rPYiz/hyIYGdrquj/rmffPVBurXygQumb3wzPe0/img.jpg?width=960&amp;amp;height=1280&amp;amp;face=660_144_810_294&quot;&gt;&lt;a href=&quot;https://statlearning.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://statlearning.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FTPl1/hyIZ178zyE/7hckn8yZvdjDWUogTWomsk/img.jpg?width=816&amp;amp;height=612&amp;amp;face=109_168_724_254,https://scrap.kakaocdn.net/dn/rPYiz/hyIYGdrquj/rmffPVBurXygQumb3wzPe0/img.jpg?width=960&amp;amp;height=1280&amp;amp;face=660_144_810_294');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Introduction to Statistical Learning&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;statlearning.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;다른 원서에 비하여 설명이 자세하게 잘 되어 있고 머신러닝에 대한 기초 지식이 없는 사람들도 따라오기 쉽기 때문에 추천한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning Explained</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/7</guid>
      <comments>https://hyohyokang.tistory.com/7#entry7comment</comments>
      <pubDate>Tue, 19 Jan 2021 16:56:16 +0900</pubDate>
    </item>
    <item>
      <title>1. Basic introduction of statistical learning</title>
      <link>https://hyohyokang.tistory.com/6</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Basic of statistical Learning&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;X_1, X_2, ... , X_p가 주어졌을 때 Y를 구하는 것 (prediction)&lt;/p&gt;
&lt;p&gt;X_1, X_2, ... , X_p와 Y의 관계를 이해하고 X가 달라짐에 따라서 어떻게 Y가 달라지는지 이해하는 것 (inference)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;- Y = f(X) + &lt;span&gt;&amp;epsilon;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;X; 독립변수 = 설명변수 = Input variables = predictors, independent variables, features, variables&lt;/li&gt;
&lt;li&gt;Y; 종속변수 = 반응변수 = Output variables =&amp;nbsp; response, dependent variable&lt;/li&gt;
&lt;li&gt;&amp;epsilon;; 오차항 = random error term = independent of X and has mean zero (normally distributed around mean zero)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Prediction 예측&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;앞서 말한 오차항의 평균이 0이기 때문에&amp;nbsp; &amp;nbsp;y를 predict 하면 다음과 같은 결과가 나온다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;100&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-19 at 2.33.27 PM.png&quot; data-origin-width=&quot;186&quot; data-origin-height=&quot;62&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEWMTm/btqTYRbHjQY/cdwlmY2hVhk28ZkfoBjTB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEWMTm/btqTYRbHjQY/cdwlmY2hVhk28ZkfoBjTB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEWMTm/btqTYRbHjQY/cdwlmY2hVhk28ZkfoBjTB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEWMTm%2FbtqTYRbHjQY%2FcdwlmY2hVhk28ZkfoBjTB0%2Fimg.png&quot; width=&quot;100&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-19 at 2.33.27 PM.png&quot; data-origin-width=&quot;186&quot; data-origin-height=&quot;62&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;ŷ는 y를 예상한 값이고 다음과 같이 2가지 오차에 따라 그 정확도를 측정할 수 있다:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;277&quot; data-filename=&quot;Screenshot 2021-01-19 at 2.26.42 PM.png&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;162&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/umEcr/btqTYRbGtga/sSwskmZCYdTshxlHFcvIF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/umEcr/btqTYRbGtga/sSwskmZCYdTshxlHFcvIF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/umEcr/btqTYRbGtga/sSwskmZCYdTshxlHFcvIF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FumEcr%2FbtqTYRbGtga%2FsSwskmZCYdTshxlHFcvIF1%2Fimg.png&quot; width=&quot;277&quot; data-filename=&quot;Screenshot 2021-01-19 at 2.26.42 PM.png&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;162&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;a) reducible error&lt;/b&gt;: 말 그대로 reducible 한 error이다. f^은 f의 값을 예측한 것이기 때문에 오차가 발생할 수 밖에 없다. 이러한 오차는 알맞은 statistical learning technique를 사용함으로써 줄일 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;b)&lt;/b&gt; &lt;b&gt;irreducible error&lt;/b&gt;: 줄이지 못하는 오차이다. 앞서 말한 바와 같이&amp;nbsp;&lt;i&gt;Y = f(X) +&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;epsilon;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;이고 여기서 오차항인 &lt;i&gt;&lt;span&gt;&amp;epsilon;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span&gt;는 &quot;independent of X&quot; 하다. 즉, 우리는 &lt;i&gt;&lt;span&gt;&amp;epsilon;&lt;/span&gt;&lt;/i&gt;&lt;span&gt; 를 주어진 X를 가지고 예측할 수 없기 때문에 얼마나 f를 잘 예측하는지 상관없이 &lt;i&gt;&lt;span&gt;&amp;epsilon;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span&gt; 에서 나오는 오차는 줄일 수 없다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;irreducible error가 0보다 큰 이유 (항상 존재하는 이유):
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Y를 구하는데 있어서 필요하지만 쓰이지 않은 X가 있을 수 있다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;unmeasurable한 variation을 포함할 수 잇다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Y &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;minus; &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Y&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;circ; &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;)^&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;2: average = expected value = squared difference between predicted and actual value of Y&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Var(&lt;/span&gt;&lt;i&gt;&amp;epsilon;&lt;/i&gt;): variance associated with error term 오차항의 분산&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;:&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;estimate f&lt;/li&gt;
&lt;li&gt;minimize reducible error&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Inference 추론&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;- X 와 Y의 관계를 이해하는것&lt;/p&gt;
&lt;p&gt;다음과 같은 질문을 할 수 있다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;i&gt;Which predictors are associated with the response? (identifying the important predictors)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;What is the relationship between the response and each predictor?&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Can the relationship between Y and each predictor be adequately summarized using a linear equation, or is the relationship more complicated than that?&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. When to use prediction ? vs. When to use inference?&lt;/b&gt;&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;p data-ke-size=&quot;size16&quot;&gt;1. 예측을 쓸 경우:&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;목표: 마케팅 캠페인 이메일에 긍정적으로 답할 사람들을 찾아내기&amp;nbsp;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;Y: 마케팅 캠페인에 대한 반응 (긍정적/부정적)&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;X: demographic variables&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 추론을 쓸 경우:&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;TV, PV/Mobile, Radio 각각의 광고 효과의 데이터가 있다고 치자. 광고의 효과를 측정하는 지표는 sales로 정했을 경우, 다음과 같은 질문들을 통하여 추론이 가능하다:&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;어떤 미디어가 가장 많이 sales에 contribute 했을까?&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;주어진 TV의 광고의 증가에 따른 sales의 변동은 어떻게 될까?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Parametric vs. Non-parametric methods&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Statistical Learning method은 크게 2가지로 나누어 진다:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Parametric&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Non-parametric&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;&lt;b&gt;1.&lt;/b&gt; &lt;b&gt;Parametric&lt;/b&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 data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: model-based approach이다. 즉, 모델을 정하고 나서 알맞은 파라미터 값을 구하는 것이다.&amp;nbsp;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법&lt;/b&gt;: 2-step
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;f의 functional form/shape에 관한 가정을 한다. 예를 들어, &quot;f is linear in X&quot;라는 가정을 세우면 다음과 같은 식으로 나타낼 수 있다:&amp;nbsp; f(X) = b_0 + b_1 X_1 + b_2 X_2 + ... + b_p X_p&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;training 데이터를 사용하여 모델을 train 한다. 예를 들어, 앞서 언급한 선형회귀에 데이터를 fit하기 위하여 Ordinary least squares를 사용 할 수 있다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: f 전체를 예측하는 것이 아니라 파라미터 셋을 예측하는 문제가 되어서 더욱 간단하다.&amp;nbsp;&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 모델에 대한 가정을 하기 때문에 true unknown form of f를 예측하는 것은 힘들다. 이에 대한 대책으로는 flexible한 모델을 ㅆ는 것인데 보통 parameter 수를 늘리고는 한다. 하지만 파라미터 수를 늘려서 더욱 복잡한 모델을 만들게 되면 데이터를 overfitting하는 위험이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;2. Non-parametric methods&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;정의&lt;/b&gt;: f 의 functional form 에 대한 가정을 하지 않고 각 데이터 포인트에 가장 가까운 f 를 추측한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;: 가정을 세우지 않기 때문에 다양한 shape를 시도할 수 있고 따라서 정확도 또한 parametric method보다 높다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;: f&amp;nbsp; 자체를 예측하지 않고 적은 수의 파라미터를 예측하는 것이 불가하기 때문에 parametric approach에서 쓰인 파라미터 갯수보다 월등히 많은 파라미터가 필요하다. 따라서 오버피팅의 위험이 있다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. Trade-Off between Prediction Accuracy and Model Interpretability&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;일반적으로 flexibility가 증가할수록 interpretability는 줄어든다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Inference(추론)&lt;/b&gt;을 할 경우에는 flexibility를 높여서 정확도를 높이는 것보다 &lt;b&gt;interpretability&lt;/b&gt;에 맞추어 변수들 간의 관계를 알아내는 것이 더 적합하다. 반면,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;prediction(예측&lt;/b&gt;)을 할 경우에는 &lt;b&gt;정확도&lt;/b&gt;가 중요하기 때문에 interpretability는 신경을 쓸 필요가 없다. 하지만 그렇다고 하여 꼭 more flexible한 method이 더 정확한 결과를 도출하지는 않는다. 오버피팅의 문제 때문이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;[Figure1] &lt;/i&gt;을 보자:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;593&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-19 at 4.29.03 PM.png&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;918&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xtV9L/btqT02jDFud/eLPcErWK4h72sVk4UskdjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xtV9L/btqT02jDFud/eLPcErWK4h72sVk4UskdjK/img.png&quot; data-alt=&quot;[Figure 1]: Tradeoff between Flexibility and Interpretability&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xtV9L/btqT02jDFud/eLPcErWK4h72sVk4UskdjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxtV9L%2FbtqT02jDFud%2FeLPcErWK4h72sVk4UskdjK%2Fimg.png&quot; width=&quot;593&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-19 at 4.29.03 PM.png&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;918&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Figure 1]: Tradeoff between Flexibility and Interpretability&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Least squares has relatively low flexibility &amp;amp; relatively high interpretability&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Lasso has lowest felxibility &amp;amp; highest interpretability. 그 이유는 lasso는 linear model에 추가적인 fitting procedure를 더하는데 그 결과 계수를 예측하는데 있어서 linear model보다 더 제한적이다. 자세히 말하자면 shrinkage method을 쓰는데 ridge와 다르게 lasso의 경우 중요하지 않은 변수의 계수를 0으로 만들어 준다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Generalized Additive Models (GAMs) 는 linear model에 특정한 non-linear relationship을 더한 것으로 linear regression보다 flexible하다. 다만, 독립변수와 종속변수의 관계를 선이 아닌 곡선으로 표현하는 것이기 때문에 less interpretable하다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;bagging, boosting, support vector machine with non-linear kernals와 같이 fully non-linear methods는 매우 flexible하지만 interpret하기 어렵다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6.&amp;nbsp; Supervised vs. Unsupervised Learning&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;Supervised Learning: 독립변수와 종속변수가 존재함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;Prediction, Inference&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;logistic regression, GAM, boosting, SVM, etc&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Unsupervised Learning: 독립변수만 존재함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Clustering&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Machine Learning Explained</category>
      <category>machine learning basic</category>
      <category>non-parametric</category>
      <category>parametric</category>
      <category>supervised learning</category>
      <category>독립변수</category>
      <category>머신러닝</category>
      <category>선형회귀</category>
      <category>종속변수</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/6</guid>
      <comments>https://hyohyokang.tistory.com/6#entry6comment</comments>
      <pubDate>Tue, 19 Jan 2021 16:52:29 +0900</pubDate>
    </item>
    <item>
      <title>Information Management system of School</title>
      <link>https://hyohyokang.tistory.com/5</link>
      <description>&lt;p&gt;학교에 관한 데이터베이스 디자인을 간단하게 구성해 보았다. 다음과 같은 구성으로 데이터베이스 디자인을 해보았다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. ER diagram&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Schema&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. SQL code&lt;/p&gt;
&lt;p&gt;4. Normalization&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. ER Diagram&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.42.03 PM.png&quot; data-origin-width=&quot;1126&quot; data-origin-height=&quot;628&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9bv9B/btqS6YnXPDt/PhZ6qb8JyF1i3fU1s40QBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9bv9B/btqS6YnXPDt/PhZ6qb8JyF1i3fU1s40QBk/img.png&quot; data-alt=&quot;Figure 1: ER Diagram of School&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9bv9B/btqS6YnXPDt/PhZ6qb8JyF1i3fU1s40QBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9bv9B%2FbtqS6YnXPDt%2FPhZ6qb8JyF1i3fU1s40QBk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.42.03 PM.png&quot; data-origin-width=&quot;1126&quot; data-origin-height=&quot;628&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 1: ER Diagram of School&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;i&gt;Figure 1&amp;nbsp;&lt;/i&gt;은 다음과 같은 가정을 한다:&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;- 학생들은 복수 전공이 가능하다&lt;/p&gt;
&lt;p&gt;- 휴학을 하고 있는 학생들로 인해 어느 과목에도 수강신청이 되어 있지 않은 학생들이 있다&lt;/p&gt;
&lt;p&gt;- &lt;i&gt;Insructors&lt;/i&gt; 중에는 대학에서 오로지 연구만 진행하는 경우가 있다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Participation constraints도 존재한다:&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;-&lt;i&gt;&amp;nbsp;students&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;have&lt;i&gt;&amp;nbsp;​majors&lt;/i&gt;​&amp;nbsp;and&amp;nbsp;&lt;i&gt;​majors​&amp;nbsp;&lt;/i&gt;must&amp;nbsp;have&amp;nbsp;​&lt;i&gt;students&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;courses​&lt;/i&gt;&amp;nbsp;must&amp;nbsp;have&amp;nbsp;​students&lt;br /&gt;-&amp;nbsp;&lt;i&gt;courses&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;have&lt;i&gt;&amp;nbsp;​instructors&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;instructors&lt;/i&gt;​&amp;nbsp;should&amp;nbsp;be&amp;nbsp;included&amp;nbsp;in&amp;nbsp;specific&amp;nbsp;​&lt;i&gt;department&lt;/i&gt;​,&amp;nbsp;and&amp;nbsp;vice&amp;nbsp;versa&lt;br /&gt;-&amp;nbsp;&lt;i&gt;departments&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;provide&amp;nbsp;​&lt;i&gt;majors&lt;/i&gt;​&amp;nbsp;and&amp;nbsp;vice&amp;nbsp;versa&lt;br /&gt;-&amp;nbsp;&lt;i&gt;college&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;have&amp;nbsp;​&lt;i&gt;departments&lt;/i&gt;​&amp;nbsp;and&amp;nbsp;vice&amp;nbsp;versa&lt;br /&gt;-&amp;nbsp;&lt;i&gt;course&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;be&amp;nbsp;offered&amp;nbsp;by&amp;nbsp;the&amp;nbsp;​&lt;i&gt;department&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;major&lt;/i&gt;​&amp;nbsp;must&amp;nbsp;have&amp;nbsp;core&amp;nbsp;&lt;i&gt;​course(​&amp;nbsp;s)&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Key constraints는 다음과 같다:&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&lt;i&gt;Major&lt;/i&gt;​&amp;nbsp;can&amp;nbsp;only&amp;nbsp;be&amp;nbsp;included&amp;nbsp;in&amp;nbsp;one&amp;nbsp;​&lt;i&gt;department&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;department&lt;/i&gt;​&amp;nbsp;can&amp;nbsp;only&amp;nbsp;belong&amp;nbsp;to&amp;nbsp;one&amp;nbsp;​&lt;i&gt;college&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;instructors&lt;/i&gt;​&amp;nbsp;can&amp;nbsp;be&amp;nbsp;working&amp;nbsp;in&amp;nbsp;only&amp;nbsp;one&amp;nbsp;​&lt;i&gt;department&lt;/i&gt;&lt;br /&gt;-&amp;nbsp;&lt;i&gt;course&lt;/i&gt;​&amp;nbsp;can&amp;nbsp;only&amp;nbsp;be&amp;nbsp;offered&amp;nbsp;by&amp;nbsp;one&amp;nbsp;​&lt;i&gt;department&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;ISA Hierarchy&lt;/u&gt; 는 &lt;i&gt;students, instructors,&lt;/i&gt; 그리고 &lt;i&gt;person&lt;/i&gt; entity 사이에 hierarchy를 형성하기 위해 사용하였다.&amp;nbsp;&lt;i&gt;Person&lt;/i&gt;은 logical sub-components인 &lt;i&gt;students&lt;/i&gt;과 &lt;i&gt;instructors&lt;/i&gt;로 구성되어 있다. Overlap contraints는 허용되지 않는다. 즉, &lt;i&gt;Person&lt;/i&gt;은 동시에 &lt;i&gt;instructor&lt;/i&gt;이면서 &lt;i&gt;student&lt;/i&gt;일 수 없다. Covering constraints 또한 있다; 모든 사람들은 &lt;i&gt;student &lt;/i&gt;와&amp;nbsp;&lt;i&gt;instructor&lt;/i&gt; 둘중에 하나에는 꼭 포함이 되어 있어야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Conceptual Schema:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Person(ID:&amp;nbsp;integer,&amp;nbsp;FirstName:&amp;nbsp;string,&amp;nbsp;LastName:&amp;nbsp;string)&lt;br /&gt;Student(ID:&amp;nbsp;integer,&amp;nbsp;StudyMode:&amp;nbsp;string,&amp;nbsp;Nationality:&amp;nbsp;string,&amp;nbsp;Age:&amp;nbsp;integer,&amp;nbsp;EnrollmentDate:&amp;nbsp;string)&amp;nbsp;enroll(Grade:&amp;nbsp;string,&amp;nbsp;ID:&amp;nbsp;integer,&amp;nbsp;CID:&amp;nbsp;integer)&lt;br /&gt;Course(CID:&amp;nbsp;integer,&amp;nbsp;Title:&amp;nbsp;string,&amp;nbsp;credit:&amp;nbsp;integer,&amp;nbsp;DID:&amp;nbsp;integer)&lt;br /&gt;instructor(ID:&amp;nbsp;integer,&amp;nbsp;Salary:&amp;nbsp;real,&amp;nbsp;HireDate:&amp;nbsp;string)&lt;br /&gt;Office(officeID:&amp;nbsp;integer,&amp;nbsp;Location:&amp;nbsp;string)&lt;br /&gt;Major(MID:&amp;nbsp;integer,&amp;nbsp;Mname:&amp;nbsp;string,&amp;nbsp;DID:&amp;nbsp;integer)&lt;br /&gt;Department(CoID:&amp;nbsp;integer,&amp;nbsp;DID:&amp;nbsp;integer,&amp;nbsp;Dname:&amp;nbsp;string,&amp;nbsp;Budget:&amp;nbsp;real,&amp;nbsp;StartDate:&amp;nbsp;string)&amp;nbsp;Offer(Semester:&amp;nbsp;string)&lt;br /&gt;College(Coname:&amp;nbsp;string,&amp;nbsp;CoID:&amp;nbsp;integer)&lt;br /&gt;work&amp;nbsp;(ID:&amp;nbsp;integer,&amp;nbsp;DID:&amp;nbsp;integer,&amp;nbsp;Since:&amp;nbsp;string)&lt;br /&gt;HasMajor(ID:&amp;nbsp;integer,&amp;nbsp;MID:&amp;nbsp;integer)&lt;br /&gt;Core(MID:&amp;nbsp;integer,&amp;nbsp;CID:&amp;nbsp;integer)&lt;br /&gt;Offer(CID:&amp;nbsp;string,&amp;nbsp;DID:&amp;nbsp;integer,&amp;nbsp;Semester:&amp;nbsp;string)&lt;br /&gt;Teach(CID:&amp;nbsp;integer,&amp;nbsp;ID:&amp;nbsp;integer)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. SQL&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Figure1 &lt;/i&gt;을 참조하여 SQL 코드를 작성하면 다음과 같이 나타낼 수 있다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;543&quot; width=&quot;406&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVehGA/btqS1Wx2TGY/f2NrkFXjdLKpP3TqCMGlsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVehGA/btqS1Wx2TGY/f2NrkFXjdLKpP3TqCMGlsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVehGA/btqS1Wx2TGY/f2NrkFXjdLKpP3TqCMGlsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVehGA%2FbtqS1Wx2TGY%2Ff2NrkFXjdLKpP3TqCMGlsk%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;543&quot; width=&quot;406&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;1024&quot; width=&quot;495&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rmlVi/btqS4LCrHly/2hrooxVaJuu2BEH38uKMr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rmlVi/btqS4LCrHly/2hrooxVaJuu2BEH38uKMr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rmlVi/btqS4LCrHly/2hrooxVaJuu2BEH38uKMr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrmlVi%2FbtqS4LCrHly%2F2hrooxVaJuu2BEH38uKMr0%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;1024&quot; width=&quot;495&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.57.06 PM.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;222&quot; width=&quot;324&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/74TEr/btqS3baxGXl/pDakmPi7wa5KJEG2BZiBo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/74TEr/btqS3baxGXl/pDakmPi7wa5KJEG2BZiBo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/74TEr/btqS3baxGXl/pDakmPi7wa5KJEG2BZiBo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F74TEr%2FbtqS3baxGXl%2FpDakmPi7wa5KJEG2BZiBo0%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.57.06 PM.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;222&quot; width=&quot;324&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.57.39 PM.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1128&quot; width=&quot;447&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NCGOd/btqS29RlLnr/S659C8dBtIgA1ZF2zXGST1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NCGOd/btqS29RlLnr/S659C8dBtIgA1ZF2zXGST1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NCGOd/btqS29RlLnr/S659C8dBtIgA1ZF2zXGST1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNCGOd%2FbtqS29RlLnr%2FS659C8dBtIgA1ZF2zXGST1%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.57.39 PM.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1128&quot; width=&quot;447&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.58.17 PM.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;152&quot; width=&quot;199&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwodyt/btqS1VZ5DKJ/7XqvhO4umS6hmU9E08EoS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwodyt/btqS1VZ5DKJ/7XqvhO4umS6hmU9E08EoS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwodyt/btqS1VZ5DKJ/7XqvhO4umS6hmU9E08EoS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdwodyt%2FbtqS1VZ5DKJ%2F7XqvhO4umS6hmU9E08EoS1%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.58.17 PM.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;152&quot; width=&quot;199&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;90&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.58.37 PM.png&quot; width=&quot;358&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ycnhX/btqS9YVxlHn/CEFdXa2HpJKG0WoYKtO601/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ycnhX/btqS9YVxlHn/CEFdXa2HpJKG0WoYKtO601/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ycnhX/btqS9YVxlHn/CEFdXa2HpJKG0WoYKtO601/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FycnhX%2FbtqS9YVxlHn%2FCEFdXa2HpJKG0WoYKtO601%2Fimg.png&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;90&quot; data-filename=&quot;Screenshot 2021-01-09 at 5.58.37 PM.png&quot; width=&quot;358&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. Normalization&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;데이터 무결성과 데이터 의존성을 확보하고 중복되는 데이터를 없애기 위하여 각 테이블에 Boyce-Codd Normal Form을 적용하였다. Normalization을 통하여 테이블을 더 효율적으로 사용할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Starting with &lt;i&gt;&lt;u&gt;Person&lt;/u&gt; &lt;/i&gt;entity, we have R(ID, FirstName, LastName), with FD of ID -&amp;gt; (FirstName, LastName). Since {ID}+ ={ID, FirstName, LastName}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For &lt;i&gt;&lt;u&gt;Student&lt;/u&gt;&lt;/i&gt; entity, we have R(ID, EnrollmentDate, Age, nationality, StudyMode), with FD of ID -&amp;gt; (EnrollmentDate, Age, nationality, StudyMode). As {ID}+ = {ID, EnrollmentDate, Age, nationality, StudyMode}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For &lt;i&gt;&lt;u&gt;Office&lt;/u&gt;&lt;/i&gt; entity, we have R(officeID, Location), with FD of OfficeID -&amp;gt; Location. As {OfficeID}+ = {OfficeID, Location}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;College&lt;/u&gt;&lt;/i&gt; entity has R(CoID, CoName), with FD of CoID -&amp;gt; CoName. Since {CoID}+ = {CoName, CoID}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Department&lt;/u&gt;&lt;/i&gt; entity has R(DID, CoID, DName, Budget, StartDate). Its FD are the following: DID -&amp;gt; (CoID, DName, Budget, StartDate), DName -&amp;gt; DID. {DID}+ ={DID, CoID, DName, Budget, StartDate} and {DName}+ = {DName, DID, CoID, Budget, StartDate}. Therefore it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Instructor&lt;/u&gt;&lt;/i&gt; has R(ID, HireDate, Salary, officeID, DID). Its FD are are following: ID-&amp;gt; (HireDate, Salary, officeID, DID) and officeID -&amp;gt; ID. Since {ID}+ = {ID, HireDate, Salary, officeID, DID} and {officeID}+ = {ID, HireDate, Salary, officeID, DID}, it is in BCNF. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Work has R(ID, DID, Since), with FD of ID, DID -&amp;gt; Since and ID -&amp;gt; since. This is not in 2NF. So we decompose R(ID, DID, Since) into R1(ID, DID) and R2(ID, Since). There is no transitive FD so 3NF holds. {ID}+ = {ID, DID}, therefore R1 is in BCNF. {ID}+ = {ID, Since}, therefore R2 is also in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For &lt;i&gt;&lt;u&gt;Major&lt;/u&gt;&lt;/i&gt;, it has R(MID, DID, MName), with FD of MID -&amp;gt; (DID, MName) and MName -&amp;gt; MID. Since {MID}+ = {DID, MName, MID} and {MName}+ = {MName, DID, MID}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For &lt;i&gt;&lt;u&gt;HasMajor&lt;/u&gt;&lt;/i&gt;, it has R(ID, MID), it has no non-key attributes. Therefore, it does not have functional dependencies.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Course&lt;/u&gt;&lt;/i&gt; has R(CID, Title, Credit, DID). One course can be divided into different session, therefore can have different CID for the same Title. The FD here will therefore be: CID -&amp;gt; (Title, Credit, DID) and Title -&amp;gt; (credit). By applying Armstrong&amp;rsquo;s Rules split, we can infer that CID -&amp;gt; Title. We find that the functional dependency is not 3NF give Title -&amp;gt; Credit. Thus, we decompose R(CID, Title, Credit, DID) to R1(Title, Credit) and R2(CID, Title, DID). For R1, as {Title}+ = {Title, Credit}, it is in BCNF. For R2, as {CID}+ ={CID, Title, DID}, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Enroll&lt;/u&gt;&lt;/i&gt; has R(ID, CID, Grade). Its FD are ID -&amp;gt; (CID, Grade) and (ID, CID) -&amp;gt; Grade. As it is not in 2NF, we decompose R(ID, CID, Grade) into R1(ID, Grade) and R2(ID, CID). There are no transitive FD. For R1, {ID}+ = {ID, Grade}, and for R2, {ID}+ = {ID, CID}. Therefore, it is in BCNF.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Core&lt;/u&gt;&lt;/i&gt; has R(MID, CID). It has no non-key attributes. Therefore, it does not have functional dependencies.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Offer&lt;/u&gt;&lt;/i&gt; has R(CID, DID, Semester). FD are CID -&amp;gt; DID, (CID, DID) -&amp;gt; Semester and CID -&amp;gt; Sem. As it is not in 2NF, we decompose R(CID, DID, Semester) into R1(CID, Sem) and R2(CID, DID). Closure is {CID}+ = {CID, Sem} for R1, therefore is in BCNF. For R2, {CID}+ = {CID, DID}.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;i&gt;&lt;u&gt;Teach&lt;/u&gt;&lt;/i&gt; has R(CID, ID). It is a fully-keyed relation. Therefore, it does not have functional dependencies. &lt;/span&gt;&lt;/p&gt;</description>
      <category>DBMS</category>
      <category>dbms</category>
      <category>ERDiagram</category>
      <category>Schema</category>
      <category>sql</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/5</guid>
      <comments>https://hyohyokang.tistory.com/5#entry5comment</comments>
      <pubDate>Sat, 9 Jan 2021 18:07:50 +0900</pubDate>
    </item>
    <item>
      <title>Basic security_ 정리노트</title>
      <link>https://hyohyokang.tistory.com/3</link>
      <description>&lt;p&gt;&lt;b&gt;Security에는 3가지 종류가 있다:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Theoretic security : always secure under all circumstance (almost impossible except one time pad)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Computational security : practically not feasible to circumvent a service&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Based on cost&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Information security&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;def&lt;/b&gt;: basis for protecting information assets&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Protection measures for info security&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Prevention _encryption&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Detection _modification&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Reaction/ Recovery&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Security goals/ 3 aspects of information protection&lt;span&gt;&amp;nbsp; &lt;/span&gt;; CIA&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Confidentiality&lt;/b&gt; &lt;/span&gt;&lt;span&gt;: &lt;b&gt;prevention&lt;/b&gt; of unauthorised &lt;/span&gt;&lt;span&gt;&lt;b&gt;disclosure&lt;/b&gt;&lt;/span&gt;&lt;span&gt; of information &lt;/span&gt;&lt;span&gt;비밀 - &lt;/span&gt;We wish to prevent&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Integrity&lt;/b&gt; &lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;: &lt;b&gt;prevention&lt;/b&gt; of unauthorised &lt;/span&gt;&lt;span&gt;&lt;b&gt;modification&lt;/b&gt;&lt;/span&gt;&lt;span&gt; of information. &lt;/span&gt;&lt;span&gt;진실성 - &lt;/span&gt;We cannot prevent, best is detection, cannot recover really&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Availability&lt;/b&gt;&lt;/span&gt;&lt;span&gt; &lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;: &lt;b&gt;prevention&lt;/b&gt; of unauthorised &lt;/span&gt;&lt;span&gt;&lt;b&gt;withholding&lt;/b&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;밝히다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;of information or resources&lt;span&gt; - &lt;/span&gt;&lt;/span&gt;We cannot prevent, need to detect, ideally recover&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Threat&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Security is only desirable when there is a need to protect a system from threat.&lt;/p&gt;
&lt;p&gt;Threat - some thing that can possibly go wrong&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Attack - threat actually happening&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Security threat.&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;: means by which security policy may be breached (loss of integrity/confidentiality)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Countermeasures&lt;span&gt;&amp;nbsp; &lt;/span&gt;: controls to project against threats&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Vulnerabilities &lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;: weaknesses in the system&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Attack&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;: realisation of threat (exploiting a vulnerability)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Classification of threat&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Deliberate&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Accidental&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;p&gt;Related to CIA threats:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Exposure of data&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Tampering with data&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Denial of service&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Adversaries &lt;/b&gt;&lt;span&gt;&lt;b&gt;적&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Def: &lt;/b&gt;people whose aim is to circumvent your security. Intruders also called, but not all adversaries are external to system&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Active&lt;/span&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Unauthorised alteration, deletion, transmission, prevention of access to information&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Falsification of origin of information&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;span&gt;Passive : attempt to get unauthorised access. Don&amp;rsquo;t touch data, only observe.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;Threat, service, mechanism을 구별할 줄 알아야 한다. 예를 들어 threat이 disclosure일 경우 security service는 confidentiality이고 security mechanism은 encryption이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 94.7972%; height: 667px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8282%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Security threat&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 41.2269%;&quot;&gt;
&lt;p&gt;Possible &lt;b&gt;means&lt;/b&gt; by which your security goals may be breached&lt;/p&gt;
&lt;p&gt;e.g.) loss of integrity/ confidentiality&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Disclosure&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 42.8221%;&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8282%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Security service&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 41.2269%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Measure&lt;/b&gt; which can be put in place to address a threat&lt;/p&gt;
&lt;p&gt;e.g.) provision of confidentiality&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Confidentiality -&amp;gt; &lt;b&gt;CIA&lt;/b&gt; can be considered as security service&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 42.8221%;&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8282%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Security mechanism&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 41.2269%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Means&lt;/b&gt; to &lt;b&gt;provide&lt;/b&gt; a service&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;e.g.) encryption, digital signature&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Encryption&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 42.8221%;&quot;&gt;
&lt;p&gt;2 classes:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Specific security mechanisms&lt;/li&gt;
&lt;li&gt;Pervasive security mechanisms&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Algorithms are used to build mechanisms&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 234px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 90px;&quot;&gt;
&lt;td style=&quot;width: 14.7674%; height: 90px;&quot;&gt;
&lt;p&gt;&lt;b&gt;Authentication&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 85.1163%; height: 90px;&quot;&gt;
&lt;ol&gt;
&lt;li&gt;Entity authentication&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Origin authentication&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 54px;&quot;&gt;
&lt;td style=&quot;width: 14.7674%; height: 54px;&quot;&gt;
&lt;p&gt;&lt;b&gt;Access control&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 85.1163%; height: 54px;&quot;&gt;
&lt;p&gt;Protection against unauthorised use of resource&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 90px;&quot;&gt;
&lt;td style=&quot;width: 14.7674%; height: 90px;&quot;&gt;
&lt;p&gt;&lt;b&gt;Non-repudiation&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 85.1163%; height: 90px;&quot;&gt;
&lt;ol&gt;
&lt;li&gt;Non-repudiation of origin: Protects against sender of data denying that data was sent&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Non-repudiation of delivery: protects against a receiver of data denying that data was received&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Information Security</category>
      <category>informationsecurity #security #CIA</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/3</guid>
      <comments>https://hyohyokang.tistory.com/3#entry3comment</comments>
      <pubDate>Mon, 4 Jan 2021 18:27:42 +0900</pubDate>
    </item>
    <item>
      <title>Empirical Asset Pricing using Machine Learning</title>
      <link>https://hyohyokang.tistory.com/2</link>
      <description>&lt;p&gt;&lt;b&gt;1. Empirical Asset Pricing 이란?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;- Asset pricing의 경우 CAPM/Fama-French 등 다양한 가격결정 모형을 사용하는 것.&lt;/p&gt;
&lt;p&gt;- Empirical Asset pricing은 다양한 데이터를 수집하여 자산 가격을 결정하는 것.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Asset Pricing에 Machine Learning을 쓰는 이유&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1)&amp;nbsp;Risk premium = Expected return - Risk Free Rate&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- 머신러닝은 예측에 매우 전문화되어 있다. 따라서 리스크 프리미엄 측정 문제에 잘 사용될 수 있다.&lt;/p&gt;
&lt;p&gt;2)&amp;nbsp;자산가격을 예측하는 데 사용되는 변수의 종류들은 다양하다. 여러 가지 stock level characteristics 뿐만 아니라 macroeconomic predictors도 포함된다. 변수들이 서로 높은 상관관계를 보일 때도 있는데 머신러닝을 사용할 경우 dimensionality redcution을 통하여 유용한 변수들을 추려낼 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3) 기존 방식과 달리 머신러닝은 functional form에 관한 flexibility를 제공한다. 예를 들어 linear model을 쓸 것인지 non-linear 한 모델을 쓸 것인지 여러 모델을 적용할 수 있다. 변수들 사이의 복잡한 관계를 approximate 할 수 있으며 parameter penalizing과 model selection을 통해 오버 피팅과 잘못된 모델 사용을 방지할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Data Collection &amp;amp; Preprocessing&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다음과 같은 데이터를 사용하였다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-04 at 5.52.43 PM.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;750&quot; width=&quot;626&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHtuZe/btqSmBaxuM1/XsDH2ZQ8U1IXpGZa8RlLbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHtuZe/btqSmBaxuM1/XsDH2ZQ8U1IXpGZa8RlLbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHtuZe/btqSmBaxuM1/XsDH2ZQ8U1IXpGZa8RlLbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHtuZe%2FbtqSmBaxuM1%2FXsDH2ZQ8U1IXpGZa8RlLbK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-04 at 5.52.43 PM.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;750&quot; width=&quot;626&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1) Target variable : r_i, t (S&amp;amp;P 500 index의 monthly return)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yahoo Finance에서 데이터를 수집하였는데 아래와 같은 데이터를 수집하게 된다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-04 at 6.00.59 PM.png&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;274&quot; width=&quot;662&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUxNS2/btqSxCsVodG/kT9rz1cvqXDnpFc6H9oxXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUxNS2/btqSxCsVodG/kT9rz1cvqXDnpFc6H9oxXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUxNS2/btqSxCsVodG/kT9rz1cvqXDnpFc6H9oxXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUxNS2%2FbtqSxCsVodG%2FkT9rz1cvqXDnpFc6H9oxXK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-04 at 6.00.59 PM.png&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;274&quot; width=&quot;662&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;내가 원하는 것은 monthly return이기 때문에 계산해준다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Market return = Stock return - Risk free rate&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Stock return = (end-start)/start&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-04 at 6.07.17 PM.png&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;866&quot; width=&quot;566&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PxOlz/btqSxCsVWG7/A9emMsshPorzHS05ZXwkTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PxOlz/btqSxCsVWG7/A9emMsshPorzHS05ZXwkTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PxOlz/btqSxCsVWG7/A9emMsshPorzHS05ZXwkTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPxOlz%2FbtqSxCsVWG7%2FA9emMsshPorzHS05ZXwkTk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-04 at 6.07.17 PM.png&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;866&quot; width=&quot;566&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;2) Dependent variable&lt;/p&gt;
&lt;p&gt;위에 있는 표1에서 r_i, t를 제외한 전부가 다 종속변수로 쓰였다. 각 변수에 대한 설명은 표에 있으니 참조하면 된다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;데이터는 Amit Goyal의 웹사이트에서 수집하였다. 종속변수를 크게 2가지로 나누었다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. primary stock characteristics: d/p, e/p, d/e, svar, b/m, ntis&lt;/p&gt;
&lt;p&gt;2. interest rate related characteristics: tbl, lty, ltr, tms, dfy, df, infl&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3) Data preprocessing&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 47.093%; height: 22px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Training Dataset&lt;br /&gt;1938.01 - 1999.12&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Testing Dataset&lt;br /&gt;2000.01 - 2019.12&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;데이터를&amp;nbsp; testing과 training 셋으로 나눈다. 또한 Date 컬럼을 변수에서 제거했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.54.41 PM.png&quot; data-origin-width=&quot;1810&quot; data-origin-height=&quot;446&quot; width=&quot;787&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qJcA5/btqSxBOWFVF/KzuFIbRfMCBt7evVAX0TVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qJcA5/btqSxBOWFVF/KzuFIbRfMCBt7evVAX0TVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qJcA5/btqSxBOWFVF/KzuFIbRfMCBt7evVAX0TVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqJcA5%2FbtqSxBOWFVF%2FKzuFIbRfMCBt7evVAX0TVk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.54.41 PM.png&quot; data-origin-width=&quot;1810&quot; data-origin-height=&quot;446&quot; width=&quot;787&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Data Scaling을 진행한다. 머신러닝을 진행하면 데이터를 그대로 받아들이기 때문에 변수들 의 데이터 range가 다른 경우 scaling을 해주는 것이 좋다. sklean 라이브러리에 있는 preprocessing.StandardScaler()를 사용하였다. StandardScaler()는 데이터가 &lt;span&gt;&amp;nbsp;&lt;/span&gt;mean 0, standard deviation 1으로 &lt;span style=&quot;color: #333333;&quot;&gt;normally distributed 하다고 가정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;440&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.55.42 PM.png&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;198&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXmzuQ/btqSxCAnVus/hA7t7su8S6qTKa2FcoGhL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXmzuQ/btqSxCAnVus/hA7t7su8S6qTKa2FcoGhL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXmzuQ/btqSxCAnVus/hA7t7su8S6qTKa2FcoGhL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXmzuQ%2FbtqSxCAnVus%2FhA7t7su8S6qTKa2FcoGhL1%2Fimg.png&quot; width=&quot;440&quot; height=&quot;NaN&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.55.42 PM.png&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;198&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. Exploratory Data Analysis&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.36.11 PM.png&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;744&quot; width=&quot;518&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIbnuN/btqSxCAmnwZ/qdAv6SNsgSgcwuF9cDedB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIbnuN/btqSxCAmnwZ/qdAv6SNsgSgcwuF9cDedB0/img.png&quot; data-alt=&quot;correlation heatmap&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIbnuN/btqSxCAmnwZ/qdAv6SNsgSgcwuF9cDedB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIbnuN%2FbtqSxCAmnwZ%2FqdAv6SNsgSgcwuF9cDedB0%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-05 at 2.36.11 PM.png&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;744&quot; width=&quot;518&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;correlation heatmap&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Pandas Profiling을 사용하여 상관관계 히트맵 시각화를 진행하였다. correlation r의 절댓값이 0.7보다 큰 경우, 상관관계가 높다고 할 수 있다. 히트맵을 보면 높은 상관관계를 가진 변수들은 다음과 같다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- lty(long term rate of return) &amp;amp; tbl(treasury bill rate)&lt;/p&gt;
&lt;p&gt;- b/m (book to market ratio) &amp;amp; d/p (dividen price ratio)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Target variable인 r_i,t와 나머지 변수들의 상관관계를 보면 significant 한 관계는 보이지 않는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. Results&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;1) OLS&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;OLS는 ordinary least squares regression으로 회귀에서 가장 기본적으로 사용되는 모델이다. sum of sqaured residuals를 최소화시키는 방법을 쓴다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.15.15 PM.png&quot; data-origin-width=&quot;1816&quot; data-origin-height=&quot;378&quot; width=&quot;687&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbZbUT/btqSDt3SjHJ/3rnCz0rDQp3lUXHfkVCHBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbZbUT/btqSDt3SjHJ/3rnCz0rDQp3lUXHfkVCHBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbZbUT/btqSDt3SjHJ/3rnCz0rDQp3lUXHfkVCHBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbZbUT%2FbtqSDt3SjHJ%2F3rnCz0rDQp3lUXHfkVCHBk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.15.15 PM.png&quot; data-origin-width=&quot;1816&quot; data-origin-height=&quot;378&quot; width=&quot;687&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;sklearn의 linearmodel.LinearRegression()을 사용하였다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MSE는 0.00258로 적은 편이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여러 가지 변수들 중에 어떤 변수의 featrue importance이 높은지 알아보자.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.18.19 PM.png&quot; data-origin-width=&quot;1328&quot; data-origin-height=&quot;890&quot; width=&quot;462&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsxBqg/btqSxBIcOyu/wJfrgcpgEzcxF43jikFjg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsxBqg/btqSxBIcOyu/wJfrgcpgEzcxF43jikFjg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsxBqg/btqSxBIcOyu/wJfrgcpgEzcxF43jikFjg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsxBqg%2FbtqSxBIcOyu%2FwJfrgcpgEzcxF43jikFjg1%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.18.19 PM.png&quot; data-origin-width=&quot;1328&quot; data-origin-height=&quot;890&quot; width=&quot;462&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.18.57 PM.png&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;620&quot; width=&quot;306&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TIfYz/btqSsRdxPwD/BUfYt0FESQLCxGLydtSqJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TIfYz/btqSsRdxPwD/BUfYt0FESQLCxGLydtSqJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TIfYz/btqSsRdxPwD/BUfYt0FESQLCxGLydtSqJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTIfYz%2FbtqSsRdxPwD%2FBUfYt0FESQLCxGLydtSqJ0%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-05 at 3.18.57 PM.png&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;620&quot; width=&quot;306&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;결과를 보면 feature importance가 0.05보다 높은 변수들은 d/p, e/p, d/e가 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;2) Ridge Regression&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;sklearn.linear_model.RidgeCV를 사용하였다. Ridge regression은 정규화된 linear regression model로 ridge estimator를 모델에 사용함으로써 multicollinearity를 해결할 수 있다. 교차검증 방법으로는 Leave One Out Cross Validation(LOOCV)을 사용하여 튜닝 파라미터를 찾았다. 21.6438을 튜닝 파라미터로 썼고 최종 MSE는 0.002337이 나왔다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.04.50 PM.png&quot; data-origin-width=&quot;978&quot; data-origin-height=&quot;864&quot; width=&quot;468&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dE3w9C/btqSKMa2qZR/DHoO5VL2u702qanhNUIL2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dE3w9C/btqSKMa2qZR/DHoO5VL2u702qanhNUIL2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dE3w9C/btqSKMa2qZR/DHoO5VL2u702qanhNUIL2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdE3w9C%2FbtqSKMa2qZR%2FDHoO5VL2u702qanhNUIL2k%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.04.50 PM.png&quot; data-origin-width=&quot;978&quot; data-origin-height=&quot;864&quot; width=&quot;468&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Feature importance를 살펴보면 significant 한 feature는 tbl, lty, ltr, svar, dfr, dfy, tms이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.05.24 PM.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;614&quot; width=&quot;395&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHIMXT/btqSDvBshuO/g0Gd24rTjLUsIObgyQJCek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHIMXT/btqSDvBshuO/g0Gd24rTjLUsIObgyQJCek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHIMXT/btqSDvBshuO/g0Gd24rTjLUsIObgyQJCek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHIMXT%2FbtqSDvBshuO%2Fg0Gd24rTjLUsIObgyQJCek%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.05.24 PM.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;614&quot; width=&quot;395&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3) Lasso&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Lasso는 Ridge처럼 linear regression에 페널티를 부과한다. 다른 점이라면 Lasso는 상관이 없는 변수들의 값을 0으로 만들 수 있기 때문에 영향이 적은 변수들을 배제할 수 있게 해 준다.&lt;/p&gt;
&lt;p&gt;교차검증에는 5-fold cross validation을 사용하였고 그 결과 튜닝 파라미터의 값은 0.00131로 나왔다. 튜닝 파라미터를 적용하여 분석을 한 결과 MSE는 0.00129로 나왔다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.13.27 PM.png&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;722&quot; width=&quot;460&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CTp0q/btqSDuWMgC9/1bdCmLlMiOXVbLQkZlQUE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CTp0q/btqSDuWMgC9/1bdCmLlMiOXVbLQkZlQUE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CTp0q/btqSDuWMgC9/1bdCmLlMiOXVbLQkZlQUE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCTp0q%2FbtqSDuWMgC9%2F1bdCmLlMiOXVbLQkZlQUE1%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.13.27 PM.png&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;722&quot; width=&quot;460&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.14.01 PM.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;614&quot; width=&quot;308&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0uled/btqSGihj9JD/umEAhgGpm0Kd2Vck4Jy3eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0uled/btqSGihj9JD/umEAhgGpm0Kd2Vck4Jy3eK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0uled/btqSGihj9JD/umEAhgGpm0Kd2Vck4Jy3eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0uled%2FbtqSGihj9JD%2FumEAhgGpm0Kd2Vck4Jy3eK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.14.01 PM.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;614&quot; width=&quot;308&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;significant 한 변수들은 다음과 같다: tbl, ltr, svar, dfr&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;4) Random Forest&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;sklearn.ensemble.RandomForestRegressor를 사용하여 머신러닝을 진행하였다. 알맞은 파라미터 설정을 위하여 3-fold cross validation으로 n_estimator, max_features, max_depth, min_samples_split, min_samples_leaf, bootstrap 값을 설정하였다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그 결과 다음과 같은 결과값이 나왔다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.18.02 PM.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;332&quot; width=&quot;241&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bihzi4/btqSLH8pwSV/1q0v2xyxSOZJ0WhWLDLUck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bihzi4/btqSLH8pwSV/1q0v2xyxSOZJ0WhWLDLUck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bihzi4/btqSLH8pwSV/1q0v2xyxSOZJ0WhWLDLUck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbihzi4%2FbtqSLH8pwSV%2F1q0v2xyxSOZJ0WhWLDLUck%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.18.02 PM.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;332&quot; width=&quot;241&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에의 결과값을 RandomForestRegressor에 입력해준다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.19.24 PM.png&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;430&quot; width=&quot;536&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FQNfL/btqSDvnTpS3/MyXjVJy4kigMlQkNi4xpJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FQNfL/btqSDvnTpS3/MyXjVJy4kigMlQkNi4xpJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FQNfL/btqSDvnTpS3/MyXjVJy4kigMlQkNi4xpJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFQNfL%2FbtqSDvnTpS3%2FMyXjVJy4kigMlQkNi4xpJk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.19.24 PM.png&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;430&quot; width=&quot;536&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;MSE의 결과값은 다음과 같다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.20.58 PM.png&quot; data-origin-width=&quot;1414&quot; data-origin-height=&quot;1064&quot; width=&quot;522&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jn2wH/btqSIYiBjzZ/zSzR9LymBDVXrARd79v3zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jn2wH/btqSIYiBjzZ/zSzR9LymBDVXrARd79v3zK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jn2wH/btqSIYiBjzZ/zSzR9LymBDVXrARd79v3zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJn2wH%2FbtqSIYiBjzZ%2FzSzR9LymBDVXrARd79v3zK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.20.58 PM.png&quot; data-origin-width=&quot;1414&quot; data-origin-height=&quot;1064&quot; width=&quot;522&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;RandomForestRegressor에는 feature_importances_가 있어서 쉽게 feature importance를 구할 수 있다. Significant feature는 tbl, svar, ltr, dfr, dp로 나왔다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 37.2093%; height: 19px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 19px;&quot;&gt;sorted(RF.feature_importances_, reverse=True)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.23.28 PM.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;642&quot; width=&quot;377&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsE7ec/btqSATJnS1F/ehuSKD7tAQjqbArMMkb4wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsE7ec/btqSATJnS1F/ehuSKD7tAQjqbArMMkb4wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsE7ec/btqSATJnS1F/ehuSKD7tAQjqbArMMkb4wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsE7ec%2FbtqSATJnS1F%2FehuSKD7tAQjqbArMMkb4wk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.23.28 PM.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;642&quot; width=&quot;377&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;5) Support Vector Regression (SVR)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;10-fold cross validation을 통해 튜닝 파마리터를 정했고 그 결과, MSE는 0.002984가 나왔다. Significant features는 ltr, tbl, svar, lty, dfr, dfy, tms, infl, ntis이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.28.55 PM.png&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;528&quot; width=&quot;425&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWArle/btqSKLwwr9I/lsonYrM63iw2WkVaBjvLh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWArle/btqSKLwwr9I/lsonYrM63iw2WkVaBjvLh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWArle/btqSKLwwr9I/lsonYrM63iw2WkVaBjvLh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWArle%2FbtqSKLwwr9I%2FlsonYrM63iw2WkVaBjvLh0%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.28.55 PM.png&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;528&quot; width=&quot;425&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.29.19 PM.png&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;284&quot; width=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ws8mZ/btqSNk6eKZo/V9Kzsq93zHCjg1CDYcybT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ws8mZ/btqSNk6eKZo/V9Kzsq93zHCjg1CDYcybT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ws8mZ/btqSNk6eKZo/V9Kzsq93zHCjg1CDYcybT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fws8mZ%2FbtqSNk6eKZo%2FV9Kzsq93zHCjg1CDYcybT1%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.29.19 PM.png&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;284&quot; width=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.26.54 PM.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;468&quot; width=&quot;328&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkJtJL/btqSATJn5E7/02nhkBuWBYHp4YUIQCrF1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkJtJL/btqSATJn5E7/02nhkBuWBYHp4YUIQCrF1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkJtJL/btqSATJn5E7/02nhkBuWBYHp4YUIQCrF1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkJtJL%2FbtqSATJn5E7%2F02nhkBuWBYHp4YUIQCrF1K%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.26.54 PM.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;468&quot; width=&quot;328&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;6) Gradient Boosted Regression Tree (GBRT)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;3-fold cross validation으로 파라미터 값을 설정하였고 그 결과 MSE는 0.001864가 나왔다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음과 같은 파라미터를 교차검증으로 설정하였다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.30.09 PM.png&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;526&quot; width=&quot;490&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B6UIS/btqSDuvPwW4/5mGO8wthOVm4gtxpkGGw61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B6UIS/btqSDuvPwW4/5mGO8wthOVm4gtxpkGGw61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B6UIS/btqSDuvPwW4/5mGO8wthOVm4gtxpkGGw61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB6UIS%2FbtqSDuvPwW4%2F5mGO8wthOVm4gtxpkGGw61%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.30.09 PM.png&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;526&quot; width=&quot;490&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;결과값은 다음과 같다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.30.34 PM.png&quot; data-origin-width=&quot;1350&quot; data-origin-height=&quot;74&quot; width=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZZkFe/btqSNk6eOeE/MzcK23AK0ia25tP2ppmC0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZZkFe/btqSNk6eOeE/MzcK23AK0ia25tP2ppmC0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZZkFe/btqSNk6eOeE/MzcK23AK0ia25tP2ppmC0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZZkFe%2FbtqSNk6eOeE%2FMzcK23AK0ia25tP2ppmC0K%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.30.34 PM.png&quot; data-origin-width=&quot;1350&quot; data-origin-height=&quot;74&quot; width=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;결과값을 입력하여 얻은 MSE:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.31.02 PM.png&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;700&quot; width=&quot;513&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IXJUC/btqSIZPkBlG/mcuX5PcIQb6auH2WbuuKkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IXJUC/btqSIZPkBlG/mcuX5PcIQb6auH2WbuuKkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IXJUC/btqSIZPkBlG/mcuX5PcIQb6auH2WbuuKkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIXJUC%2FbtqSIZPkBlG%2FmcuX5PcIQb6auH2WbuuKkk%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.31.02 PM.png&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;700&quot; width=&quot;513&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Feature importance에서 significant한 값은 tbl, svar, ltr, dp, dfr, dfy이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.31.27 PM.png&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;634&quot; width=&quot;370&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vy7AN/btqSASp7y5Z/czaZa7TiOIhKbYi9VcIS51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vy7AN/btqSASp7y5Z/czaZa7TiOIhKbYi9VcIS51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vy7AN/btqSASp7y5Z/czaZa7TiOIhKbYi9VcIS51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvy7AN%2FbtqSASp7y5Z%2FczaZa7TiOIhKbYi9VcIS51%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.31.27 PM.png&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;634&quot; width=&quot;370&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;7) Long Short Term Memory (LSTM)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;LSTM은 RNN의 한 종류로써, RNN의 vanishing error problem을 해결할 수 있다. Vanishing error problem을 간단하게 설명하자면, 과거의 input들의 영향이 시간이 지남에 따라 줄어든다는 것인데, 이러한 RNN의 문제점을 LSTM은 memroy cell을 사용하여 해결한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LSTM에 5 hidden layers을 사용하였고 geomatric pyramid rule에 따라서 각 층의 뉴론 개수를 설정하였다. 아키텍쳐의 자세한 구성은 다음과 같다:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.36.56 PM.png&quot; data-origin-width=&quot;1508&quot; data-origin-height=&quot;672&quot; width=&quot;665&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDcFTi/btqSKMWw7OX/dPR7OtsJO82v6BrP6uzV6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDcFTi/btqSKMWw7OX/dPR7OtsJO82v6BrP6uzV6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDcFTi/btqSKMWw7OX/dPR7OtsJO82v6BrP6uzV6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDcFTi%2FbtqSKMWw7OX%2FdPR7OtsJO82v6BrP6uzV6K%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.36.56 PM.png&quot; data-origin-width=&quot;1508&quot; data-origin-height=&quot;672&quot; width=&quot;665&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;각 모델의 MSE를 보면 NN1의 MSE가 가장 작고 흥미롭게도 NN2부터 NN5까지의 MSE가 동일하다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;6. Conclusion&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.39.36 PM.png&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;548&quot; width=&quot;489&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGLWTI/btqSQ4V9bHt/JKBwzNLeuWYukvmxUw96tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGLWTI/btqSQ4V9bHt/JKBwzNLeuWYukvmxUw96tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGLWTI/btqSQ4V9bHt/JKBwzNLeuWYukvmxUw96tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGLWTI%2FbtqSQ4V9bHt%2FJKBwzNLeuWYukvmxUw96tK%2Fimg.png&quot; data-filename=&quot;Screenshot 2021-01-06 at 2.39.36 PM.png&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;548&quot; width=&quot;489&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Lasso, GBRT, RF 순으로 예측률이 가장 높았다. 반면, 예측이 가장 낮은 모델은 SVR with linear kernel, LOS, LSTM이었다. 또한 앞서 알아본 feature importance를 종합해보면 가장 자주 언급된 treasury bill rates, stock variance, long term rate of return이 S&amp;amp;P 500 excess return을 예측하는데 있어서 가장 중요한 요소들이라고 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;참고문헌:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ivo Welch and Amit Goyal (2008). A Comprehensive Look at The Empirical Performance of Equity Premium Prediction.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Shihao Gu &amp;amp; Bryan Kelly &amp;amp; Dacheng Xiu (2018). &quot;Empirical Asset Pricing via Machine Learning, &quot; NBER Working Papers 25398, National Bureau of Economic Research, Inc. &lt;/span&gt;&lt;/p&gt;</description>
      <category>Project</category>
      <category>assetpricing#</category>
      <category>MachineLearning</category>
      <category>prediction</category>
      <category>자산가격</category>
      <author>효효캉</author>
      <guid isPermaLink="true">https://hyohyokang.tistory.com/2</guid>
      <comments>https://hyohyokang.tistory.com/2#entry2comment</comments>
      <pubDate>Mon, 4 Jan 2021 18:18:15 +0900</pubDate>
    </item>
  </channel>
</rss>