Programmer
(์ )M์ฌ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
(์ )A์ฌ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
(ํ)D์ฌ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
SQL ๊ฐ์ ์ ์
[๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผํ] ๋ฐ์ดํฐ ๋ถ์์ ์ํ ๊ธฐ์ด SQL
[๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผํ] ๋ฐ์ดํฐ ๋ถ์์ ์ํ ์ค๊ธ SQL
[๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผํ] ๋ฐ์ดํฐ ๋ถ์์ ์ํ ๊ณ ๊ธ SQL
์ฐธ๊ณ ๋งํฌ
๐ Github
Courses
Reviews
- [A hundred words are not as good as seeing once] Basic SQL for data analysis
- [A hundred words are not as good as seeing once] Basic SQL for data analysis
- [A hundred words are not as good as seeing once] Basic SQL for data analysis
- [A hundred words are not as good as seeing once] Basic SQL for data analysis
mmjlove1234569545
ยท
[A hundred words are not as good as seeing once] Intermediate SQL for data analysis[A hundred words are not as good as seeing once] Intermediate SQL for data analysis
Posts
Q&A
๋ง์ง๋ง DELETE ๋ฌธ ๋ถ์ฐ์ค๋ช ์ข ๋ถํ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์, ์ํ๋! DELETE๋ฌธ์์ ๊ธฐ์กด์ ์๋ ค์คฌ๋ค๋ ๋ด์ฉ๊ณผ ๋ฌ๋ผ์ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ํด์์ด ์ด๋ ต๋ค๊ณ ํ์ จ๋๋ฐ ๊ธฐ์กด์ ์๋ ค์คฌ๋ค๋ ๋ด์ฉ์ด ์ด๋ค ๋ถ๋ถ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ๋ถ๋ถ์ด ๊ถ๊ธํ ์ง ์ ์ ์์๊น์? ์๋ ค์ฃผ์ ๋ค๋ฉด ์ฐธ๊ณ ํ์ฌ ๋ ์์ธํ ๋ต๋ณํ ์ ์์ ๊ฑฐ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- 0
- 1
- 393
Q&A
๋ธ๋ก๊ทธ ์์ฑ ๋ฌธ์
์๋ ํ์ธ์! ๊น์์ง๋ ์ด์ฌํ ๊ณต๋ถํ์๋ ์์ค์๋ ์ ์๋ฌผ ์ฌ์ฉ์ ๋ํด ๊ผผ๊ผผํ ๋ฌธ์ ์ฃผ์ ์ ๊ฐ์ฌํด์ :) ๊ฐ์ ๋ด์ฉ, ๋ฌธ์ ๋ชฉ๋ก, ๊ฐ์ฌ์ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฆฌ์ ํ์์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ค์ฌ ๋ง๋ค์ด ๋ธ ์ปจํ ์ธ ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋๋ก ์ฎ๊ธฐ๋ ๊ฑด ์ง์ํด์ฃผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ์ ํฌ ๊ฐ์ ๋ด์ฉ์ ํ ๋๋ก ์์ฑ์๋์ด ์ ์ฉํ์ค ์ ์๋ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ค์ด์ ์์ฑ์๋์ ์๊ฒฌ๊ณผ ์ฝ๋๋ฅผ ๋ น์ฌ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ๊ณต๋ถ์๋ ํจ์ฌ ๋ ๋์์ด ๋์ค๊ฑฐ์์! :) ๋ธ๋ก๊ทธ์ ์ฐ์๊ธฐ ์ ์ ๋จผ์ ์์ํด์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฌ๊ณ , ๋ธ๋ก๊ทธ์ ๊ธ ์ฐ์๋ฉด ์ ํฌํํ ๋ ํ ๋ฒ ๊ณต์ ํด์ฃผ์ธ์! ๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 288
Q&A
๋ฐ๋ณต์ ์ค์ด๋ ์ฝ๋๊ฐ ์์๊น์?
์๋ ํ์ธ์, noeliden1๋ ๋ง์ํด์ฃผ์ ๊ฒ์ฒ๋ผ ์ ๊ทํํ์์ ์ฌ์ฉํ๋ฉด ๋ ์งง์ ์ฝ๋๋ก ์์ฑํ ์ ์์ต๋๋ค. SELECT DISTINCT CITY FROM STATION WHERE CITY REGEXP '^[^aeiou].*[^aeiou]$'; [๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผํ] ๋ฐ์ดํฐ ๋ถ์์ ์ํ ๊ณ ๊ธ SQL ์ธ์ 6 ์์ ์ ๊ทํํ์์ ๋ํ ๊ฐ์๋ฅผ ์งํํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 388
Q&A
๋ฌธ์ ํด์ค์ ๋ํ ์ง์ ๋๋ฆฝ๋๋ค ใ
์๋ ํ์ธ์, hero6764๋! DELETE p1 FROM Person p1 INNER JOIN Person p2 ON p1.Email = p2.Email WHERE p1.Id > p2.Id; ์์ INNER JOINํ ๊ฒฐ๊ณผ๊ฐ์ด ์๋ ํ ์ด๋ธ์ฒ๋ผ ๋์ค๊ฒ ๋ฉ๋๋ค. p1.Id | p1.Email | p2.Id | p2.Email 1 | john@example.com | 1 | john@example.com 1 | john@example.com | 3 | john@example.com 2 | bob@example.com | 2 | bob@example.com 3 | john@example.com | 1 | john@example.com 3 | john@example.com | 3 | john@example.com ์ด ํ ์ด๋ธ์์ WHERE ์กฐ๊ฑด์ ๊ฑธ๋ฉด p1.Id | p1.Email | p2.Id | p2.Email ์์ 3 | john@example.com | 1 | john@example.com ์ธ ๊ฒฐ๊ณผ๊ฐ์ด ์ง์์ง๋ฏ๋ก p1.Id | p1.Email ํ ์ด๋ธ์์๋ 1 | john@example.com | 2 | bob@example.com ์ด ๋จ๊ฒ ๋ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 313
Q&A
๋ฆฌํธ์ฝ๋ 196 ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์ Absolute๋, Absolute๋ ! ์ผ๋จ ์ฟผ๋ฆฌ๋ฅผ ๋๋ ค๋ณด๋ฉด (i), (ii) ๋๋ค ๋๊ฐ์ด id๊ฐ 1,2์ธ ๋ฐ์ดํฐ๋ค์ด ์ญ์ ๋๊ณ 3๋ง ๋จ๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ์์ id๋ฅผ primary key๋ก ์ง์ ํ๊ธฐ ๋๋ฌธ์ select๊ฐ ์๋์ด ์๋๊ธฐ ๋ณด๋จ ์ฟผ๋ฆฌ์์ ๋ฌธ์ ๊ฐ ์์ด์ id๊ฐ 3์ธ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๊ณ ์์ต๋๋ค. ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ์ผ๋ก DELETE FROM Person WHERE Id NOT IN (SELECT * FROM( SELECT MIN(Id) FROM Person GROUP BY Email) as temp); ๋ก ์์ ํ๋ฉด ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ต๋๋ค. 2. ์ ํ ์กฐ์ธ์ ๋์ผ ํ ์ด๋ธ ์์์ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ํ ์กฐ์ธ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 375
Q&A
Runtime ์ง๋ฌธ ์ ๋๋ค
์๋ ํ์ธ์ ์ด์คํธ๋! ์์ ๋ฌธ์ ๋ ์ฟผ๋ฆฌ๊ฐ ๊ธธ์ง ์์ง๋ง ์ค์ ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ๊ธธ์ด์ง๊ณ ๋ฐ์ดํฐ ์์ด ๋ง์์ง๋ค๋ ๊ฒ์ ๊ณ ๋ คํ๋ฉด Runtime์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ํด์๋ ๋ ๋น ๋ฅธ INNER JOIN์ ์ฌ์ฉํ๋ ๊ฒ ์ข์ต๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ง๋ฉด, INNER JOIN์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ถ๊ฐ์ ์ธ JOIN ๋๋ ์ฐ์ฐํด์ผํ๋ data์ ์๊ฐ ์ค๊ธฐ ๋๋ฌธ์ INNER JOIN์ ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ ๋ณดํต WHERE ์ ๋ก ํํฐ๋ง ํ๋ ๊ฒ๊ณผ INNER JOIN์ ์คํ์๊ฐ์ด ๊ฐ์ต๋๋ค. ๊ทธ๋์ ๋น ๋ฅธ ์์๋ฅผ ์ ๋๋ค๋ฉด 1. INNER JOIN 2. WHERE ํํฐ๋ง 3. LEFT JOIN ์์๊ฐ ๋ฉ๋๋ค. ์คํ์ค๋ฒํ๋ก์ฐ์ ์ฌ๋ ค์ง ๊ธ๋ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์์. - https://stackoverflow.com/questions/2726657/inner-join-vs-left-join-performance-in-sql-server/2726683 - https://stackoverflow.com/questions/121631/inner-join-vs-where ๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 298
Q&A
swap salary
์๋ ํ์ธ์ ํจ๋ฌธ์ฃผ๋! ์ฝ๋๋ฅผ ๊ฐ์ ธ๊ฐ์ LEETCODE ์์์ ๋๋ ค๋ณด๋ฉด ๋ฌธ๋ฒ ์ค๋ฅ๋ก ๋์๊ฐ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ELSE์์ ์๋ฌด๋ฐ ์กฐ๊ฑด์ ์ง์ ํด์ฃผ๊ณ ์์ง ์์์ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ณ ์์ต๋๋ค. CASE ํํ์์์ ELSE ๋ถ๋ถ์ ์๋ต์ด ๊ฐ๋ฅํ๋ฉฐ ๋ง์กฑํ๋ ์กฐ๊ฑด์ด ์์ผ๋ฉด NULL ๊ฐ์ ๋ฆฌํดํฉ๋๋ค. ๊ทธ๋์ UPDATE salary SET sex = CASE WHEN SEX ='m' THEN 'f' WHEN SEX ='f' THEN 'm' END; ์ด๋ ๊ฒ ELSE๋ฅผ ์ ๊ฑฐํ๊ณ ๋๋ฆฌ๋ฉด ๊ฐ์ด ์ ๋์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- 2
- 1
- 243
Q&A
DML ๊ณผ์ ์์ ์ง๋ฌธ์ด ์์ต๋๋ค.
์๋ ํ์ธ์ tkddbs7279 ๋! DML๋ ๋ฐ์ดํฐ ์กฐ์์ด๋ก์จ DELETE, UPDATE, INSERT ๋ช ๋ น์ด๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋ค์ด์๋ ๋ฐ์ดํฐ์ ๋ณํ์ ๊ฐํ๋ ์ข ๋ฅ์ ๋ช ๋ น์ด ์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ DB์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋, ์์ ํ๊ฑฐ๋, ์๋ก์ด ํ์ ์ง์ด๋ฃ๋ ๋ฑ ์ํฅ์ ๋ฏธ์น๊ฒ ๋ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 336
Q&A
id ๊ฐ ์ฆ๊ฐํ๋ ์ซ์๊ฐ ์๋๊ณ uuid๋ ๋ฌธ์์ด์ด๋ผ๋ฉด ์ด๋ป๊ฒ ์ ๊ทผํด์ผ๋๋์
์๋ ํ์ธ์ lolola๋! ๋ฌธ์์ด๋ผ๋ฆฌ ๋น๊ต๋ฅผ ํ ๋๋ ์์คํค์ฝ๋(์ฐธ๊ณ : https://ko.wikipedia.org/wiki/ASCII) ์์์ ๋ฐ๋ผ์ ์๋ฆฌ ์์ ์๊ด์์ด ์์๋ฆฌ๋ถํฐ ํ ๋ฌธ์์ฉ ๋น๊ตํ์ฌ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ mysql์์๋ .strcamp() ํจ์๊ฐ ์์ด์ ๋ ๋ฌธ์์ด์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ ์๋ ์์ต๋๋ค. ์๋ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ ์์ธํ ์ ๋ณด๋ฅผ ๊ณต๋ถํ ์ ์์ต๋๋ค. - https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html#function_strcmp - https://www.w3schools.com/sql/func_mysql_strcmp.asp ๊ฐ์ฌํฉ๋๋ค :) 2:20 ๋ฌธ์์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ ์์คํค ์ฝ๋ ๊ท์น์ ๋ฐ๋ผ์ ๋น๊ตํ๋ ๊ฑฐ๋๊น,์์ด๋ก๋ ๋์๋ฌธ์ ์์, ํ๊ธ๋ก๋ ๊ฐ๋๋ค๋ผ ์์์ ๋ฐ๋ผ์ ๋น๊ตํด์ค ๊ฑฐ ๊ฐ์๋ฐ ๊ทธ๋ ๊ฒ ๋น๊ต๊ฐ ๋๋ค๊ณ ์์ฑํ๋ฉด ๋ ๊น์?
- 0
- 1
- 448
Q&A
delete dupicate emails ์ง๋ฌธ๋๋ ค์
์๋ ํ์ธ์ suby0370๋! ๋ค ์์ฑํด์ฃผ์ ๊ฒ์ฒ๋ผ ์ฟผ๋ฆฌ๋ฅผ ์คํ์ํค๊ณ ๋๋ฉด +----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | +----+------------------+ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- 1
- 1
- 224