SQLã³ãŒãã£ã³ã°ãã¹ãã®åé¡è§£æ±º
ããžãã¯å®è£
+æ§ã
ãªé¢æ°ãè¬çŸ©ã®äžã€ã«ïŒ
SQLã³ãŒãã£ã³ã°ãã¹ããã©ã®ãããæºåããå¿
èŠããããŸããïŒ
ç§ã®åé¡è§£æ±ºã¯ã©ãã§ããªãééã£ãã®ã§ããïŒ
ããŒã¿è·çš®ãšå¯æ¥ãªSQL
SQLã¯ãèšå€§ãªããŒã¿ã«é ãããŠããã€ã³ãµã€ããšãã¬ã³ããèŠã€ããã®ã«åœ¹ç«ã€ããã°ã©ãã³ã°èšèªã§ããç§ã欲ããéšåã ããããŒã¿ããæããŠç¢ºèªããããšãã§ããŸãã SQLã¯éå®çãªææ³ã䜿çšããŠãããããSQLããžãã¯ãå®è£
ããŠæ£ãã颿°ã䜿çšããããšãéèŠã§ãããã®ãããITäŒç€Ÿã«å
¥ãåãç¹ã«ããŒã¿ã«é¢é£ããè·çš®ã§ããã°ãã³ãŒãã£ã³ã°ãã¹ãåã®é¢éããåãåãèšèªã§ããå
¥ç€ŸåŸãå¿
é ã®èšèªã§ãã
ããããã©ãããæºåããã¹ããããããªãã®ã§ããïŒããŒã¿ããŒã¹ã®ååã®ãããªåºæ¬çãªãã®ããå§ããå¿
èŠããããŸãããè² æ
ã倧ããè¿ã¥ããŠããŸããïŒãŸããã³ãŒãã£ã³ã°ãã¹ãçšã®SQLåé¡è§£æ±ºãç®æããŠå§ããŸãããïŒ
è² æ
ã軜æžãããå¹çãããé«ããªãããã«ã
ðââïžã³ãŒãã£ã³ã°ãã¹ãæºåäž
ðââïž SQLããŒã«ãåç
§ããŠå®åã«é©çšãããæ¹
ðââïž çè«ãããäŸãéããåŠç¿ããã£ãšè§Šããæ¹
çãæéå
ã«å
šäœçãªSQLåé¡ã®è§£æ±ºãã§ããããã«ããã®ã¬ãã¹ã³ã§ã¯Leetcodeã®SQL Easyé£æåºŠåé¡ïŒãã³ã°ã«ç¿»èš³æäŸïŒã«åŸããŸãã
ç¥èã®åºç€ã磚ããåŸã«ã¹ãã«ãè²ãŠãããšæããšããç§ã¯ããé£ããçè«ãèŠãã®ã§ã¯ãªãããŸã軜ãåé¡è§£æ±ºããå§ããŸããããããã°èªç¶ã«æŠå¿µã埩ç¿ããåé¡ãçŽæ¥è§£ãã®ã§é ã®äžã«ããã£ãšé·ãéèšæ¶ã«æ®ããŸããæ°åŠãçè«ã ãå匷ããŠåé¡è§£æ±ºãããªããã°çè§£ã§ããªãããã§ãã
SQLåé¡ãäžåºŠã«è§£æ±ºã§ããªãã£ãã®ã§å¿é
ããªãã§ãã ãããææ³ãç¥ãããšãšåé¡ãè§£ãããšãã§ãããã®ã®éã«ééãããã®ã§ãç§ãæåã¯åé¡ãäžåºŠã«è§£æ±ºã§ãããæéãé·ãããããŸãããã¿ã€ãã身ã«ã€ããèšç·Žãå¿
èŠãªã®ã§ããã£ãããšè»œãæ°æã¡ã§è¿ã¥ããããã«ãã®è¬çŸ©ãäŒç»ããŸãããä»å¹Žã®SQLã³ãŒãã£ã³ã°ãã¹ãã«åããŠç¬¬äžæ©ãèžã¿åºããŠãã ããïŒ
åçŽè
ã®ç®ã®é«ãã«ãŽã£ããïŒåããã
SQLã³ãŒãã£ã³ã°ãã¹ãã®ç¬¬äžæ©
MySQL WorkbenchããçŽæ¥SQLã«ãã¯ã¢ãã+ Github飿ºã«ããSQLããã¯ã¢ãã
Leetcodeããã³ããã§ç
§äŒã§ããSQLã¯éå®çã§ããèªåãäœæããSQLãã©ã®ããŒã¿ãåºåããã®ããçŽæ¥ç¢ºèªããŠã¿ãã®ãå®ååäžã«äžå¯æ¬ ã§ããã ããåé¡ã®è§£æ±ºã«å
ç«ã¡ãMySQLãã€ã³ã¹ããŒã«ããŠWorkbenchã§SQLãç
§äŒã§ããããã«ç°å¢èšå®ãäžç·ã«ããŠã¿ãŸãããã
ä»ã«ãGithubãšé£åããç°å¢èšå®ãè¡ã£ãŠããŸãã Githubã«èªåã®ã³ãŒãã眮ããšããã€ã§ãã©ãã§ãã©ã®ããã€ã¹ã§ãïŒæºåž¯é»è©±ã§ãä»ã®ã³ã³ãã¥ãŒã¿ã§ãïŒç¢ºèªã§ãããããããã¯ã¢ããç®çã§å€§ããªå©ãã«ãªããŸãã Githubé£åã¯ä»åã®SQLã ãã§ãªããä»ã®ããã°ã©ãã³ã°èšèªã«ã掻çšã§ããã®ã§ãšãŠã圹ã«ç«ã€ã§ãããïŒ
ãã现ããSQLåé¡ã®çš®é¡+宿é¡ãæäŸ
Leetcodeã®Easyé£æåºŠã®äžã§ãç°¡åãªé£æåºŠãšé£ããé£æåºŠãååšããŸããåºç€ã«ã¯ãããç°¡åãªé£æåºŠãéããŠè»œãå§ããã§ããããé£æåºŠã«å ããŠãSQLã®åé¡ãåå¥ã«åããŸããã CASE WHENãGROUP BYãªã©ã®ããžãã¯é¢é£ã¿ã€ãããããLAGãLEADãRANKãªã©ã®é¢æ°é¢é£ã¿ã€ãããããŸããåãããã¿ã€ããéããŠãåã¿ã€ããã©ããªåœ¢ã§åºé¡ã«ãªãããäžç®ã§ç¢ºèªã§ããŸãã
æŠå¿µèª¬æã远å çã«å¿
èŠãªéšåã¯ãåè¬çã®ããã®çè«ææ¥PPTãæäŸãããŸãããŸããäžäººã§è¿œå ã®ç·Žç¿ãè¡ãããã«ãäžéäžã®å®¿é¡ãšãœãªã¥ãŒã·ã§ã³ãæäŸããŸããããªãã®SQLã¹ãã«ãçŽæ¥ãã§ãã¯ããŠãã ããïŒ
詳现ã«ãªãã¥ã©ã
è¬çŸ©ã¯å€§ãã3ã€ã®ããŒãã«åãããŸãã
Part 1.
éåžžã«ç°¡åãªé£æåºŠåé¡ã«ããå
¥é
Leetcodeã®Easyé£æåºŠã®äžã§ããç°¡åãªé£æåºŠåé¡ãå
ã«è§£ããªãããSQLã³ãŒãã£ã³ã°ãã¹ãã«å
¥éããæºåãããŸãã
Part 2.
ããžãã¯é¢é£ã¿ã€ã
ããžãã¯é¢é£ã®åé¡ãã¿ã€ãå¥ïŒäŸïŒ join ãgroup byãnot inãcase whenãªã©ïŒã«è§£æ±ºããŸãã
MySQL Workbenchã§SQLãæ®µéçã«ç
§äŒããåŸãæçµã¯ãšãªãå°ãåºããŸãã
Part 3.
颿°é¢é£ã¿ã€ã
颿°åºæã®åé¡ãåå¥ïŒäŸïŒrankãdense_rankãrow_numberãlagãleadãªã©ïŒã«è§£æ±ºããŠãã ããã
MySQL Workbenchã§SQLãæ®µéçã«ç
§äŒããåŸãæçµã¯ãšãªãå°ãåºããŸãã
Q&A ð
Q. ãã®è¬çŸ©ã®å·®å¥ç¹ã¯äœã§ããïŒ
- Leetcodeã®åé¡ãé£æåºŠå¥ãã¿ã€ãå¥ã«è¿œå çã«åããŠæäŸããŸãã
- MySQL Workbenchã®ã€ã³ã¹ããŒã«ãåæã«ããªãããäžéSQLçµæãçŽæ¥ç¢ºèªã§ããç°å¢èšå®ãæäŸããŸãã
- Githubã®ã€ã³ã¹ããŒã«ãäžç·ã«ããªãããä»åã®è¬çŸ©ã®SQLã ãã§ãªããä»åŸä»ã®ããã°ã©ãã³ã°èšèªãããã¯ã¢ããã§ããç°å¢èšå®ãæäŸããŸãã
Q. éå°æ»è
ãèããè¬çŸ©ã§ããïŒ
ãããããã®ã¬ãã¹ã³ã¯åºæ¬çãªSQLãç¥ã£ãŠãã人ã察象ãšããŠããŸãã SQLã³ãŒãã£ã³ã°ãã¹ããæºåäžã®å°±åŽçããã¡ããã©ããŒã¿è·çš®ã§å°±è·ãããæ¹ã«å¹ççãªè¬çŸ©ã§ãã
Q. ãã®è¬çŸ©ããã¹ãŠèããããåè¬çã®ç§ã¯ã©ã®ã¬ãã«ãŸã§äžããããšãã§ããŸããïŒ
å®éã®ã³ãŒãã£ã³ã°ãã¹ãã¯ã¢ã«ãŽãªãºã åé¡ãSQLåé¡ïŒ+ããŸã«Pandas DataFrameåŠçåé¡ïŒãæ··åšããŠããŸãããSQLåé¡ã¯ããã»ã©é£ãããããŸããïŒ ïŒã¢ã«ãŽãªãºã åé¡ããå€å¥åã®ããåé¡ãåºãŠããŸããïŒ
è¬çŸ©ã«ããåŸããã³ãŒãã£ã³ã°ãã¹ãäºå®æ¥ä»¥åã«Githubã«èŒããã³ãŒãã埩ç¿åŸã«è©ŠéšãèŠããšãSQLéšåã§ã¯ç¡çãªãåé¡ã解決ã§ããã¬ãã«ã«ãªããŸãã