반응형

분류 전체보기 43

[SQL] 프로그래머스 풀이 - 우유와 요거트가 담긴 장바구니 (4가지 풀이)

프로그래머스 SQL 문제 풀이: 우유와 요거트가 담긴 장바구니문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해 주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 우유와 요거트가 동시에 담긴 장바구니를 조회하는 SQL문을 작성하는 것입니다. 이와 같은 쿼리는 실제..

[SQL] HackerRank Binary Tree Nodes - CASE 구문 활용 (NOT IN이 안되는 이유)

해커랭크 SQL 문제 풀이: Binary Tree Nodes문제링크: https://www.hackerrank.com/challenges/binary-search-tree-1/problem Binary Tree Nodes | HackerRankWrite a query to find the node type of BST ordered by the value of the node.www.hackerrank.comYou are given a table, BST, containing two columns: N and P, where N represents the value of a node in Binary Tree, and P is the parent of N. Write a query to find the ..

[SQL] HackerRank Top Earners - 서브쿼리(subquery) 활용

해커랭크 SQL 문제 풀이: Top EarnersHackerRank에서 MySQL 기준으로 문제를 풀었습니다. 아래는 문제에 사용되는 테이블 예시입니다.employee_id | name | months | salary------------|----------|--------|-------12228 | Rose | 15 | 196833645 | Angela | 1 | 344345692 | Frank | 17 | 160856118 | Patrick | 7 | 134559725 | Lisa | 11 | 233074197 | Kimberly | 16 | 4372문제링크:..

[SQL] HackerRank The Blunder - CAST, CEIL 활용

해커랭크 SQL 문제 풀이: The BlunderHackerRank에서 MySQL 기준으로 문제를 풀었습니다. 아래는 문제에 사용되는 테이블 예시입니다.# EMPLOYEES 테이블+----+---------+--------+| ID | Name | Salary |+----+---------+--------+| 1 | Kristeen| 1420 || 2 | Ashley | 2006 || 3 | Julia | 2210 || 4 | Maria | 3000 |+----+---------+--------+  문제링크: https://www.hackerrank.com/challenges/the-blunder/problem The Blunder | HackerRankQuery th..

[SQL] HackerRank Weather Observation Station 10, 11, 12 - 정규표현식 활용

정규표현식을 활용한 HackerRank Weather Observation Station 6, 7, 8, 9번 문제 풀이는 이전 포스팅을 참고해주세요2024.05.21 - [데이터 분석/SQL] - [SQL] HackerRank Weather Observation Station 6, 7, 8, 9 - 정규표현식 활용  정규표현식 활용 HackerRank 문제 풀이이전 포스팅에서와 마찬가지로 Weather Observation Station 10, 11, 12 문제도 마찬가지로 아래 STATION 테이블을 사용할 예정입니다. HackerRank에서 MySQL 사용을 기준으로 문제 풀이를 진행했습니다.# STATION 테이블| Field | Type ||--------|------------..

[SQL] HackerRank Weather Observation Station 6, 7, 8, 9 - 정규표현식 활용

MySQL에서 활용되는 정규표현식 함수 REGEXP, REGEXP_LIKE 함수의 차이점에 대해서는 이전 포스팅([SQL] MySQL 정규 표현식 사용법 (REGEXP, REGEXP_LIKE 차이점))을 참고해 주세요.  정규표현식 활용 HackerRank 문제 풀이먼저, 이어지는 HackerRank 정규표현식 문제에서 공통으로 사용될 STATION 테이블의 구조입니다. HackerRank에서는 DBMS를 선택할 수 있는데 MySQL 기준으로 문제를 풀었습니다.# STATION 테이블| Field | Type ||--------|--------------|| ID | NUMBER || CITY | VARCHAR2(21) || STATE | VARCHAR2(2) |..

[SQL] MySQL 정규 표현식 사용법 (REGEXP, REGEXP_LIKE 차이점)

SELECT p_nameFROM productsWHERE REGEXP_LIKE(p_name, '^[0-9]')정규표현식(Regular Expression)을 활용하면 다양한 텍스트 패턴을 매칭하는데 아주 효과적입니다. MySQL에서도 정규표현식을 활용할 수 있도록 함수를 제공하고 있는데요. 그중 대표적인 것이 바로 REGEXP, 그리고 REGEXP_LIKE 함수입니다. 이번 포스팅에서는 두 함수의 사용법, 차이점에 대해서 알아보겠습니다. REGEXP vs REGEXP_LIKE 사용 예시1. REGEXP: MySQL 버전 8이 나오기 전에는 내가 최고REGEXP는 MySQL 8 버전이 나오기 전에 주로 사용되던 함수입니다. 특정 문자 패턴이 존재하는지 여부를 확인할 수 있는 함수입니다. 기본 문법은 아래와..

[SQL] GROUP BY와 ORDER BY 같이 쓸때 주의할 점

GROUP BY와 ORDER BY절은 SQL문을 작성할 때 매우 많이 사용되는 구문입니다. 단, 이 2가지 절을 함께 사용할 때는 주의해야 할 점이 있는데요. 이번 포스팅에서는 GROUP BY절과 ORDER BY절을 함께 사용할 때 발생할 수 있는 문제점과 해결방법에 대해서 알아보겠습니다. GROUP BY와 ORDER BY를 함께 사용하는 쿼리 예시아래 코드를 한번 살펴보겠습니다. 각 부서별로 평균 급여를 계산하고, 평균 급여가 높은 순서대로 데이터를 출력하는 쿼리입니다.SELECT department_id, AVG(salary) AS avg_salaryFROM employeesGROUP BY department_idORDER BY avg_salary DESC; 출력되는 결과는 아래와 같습니다.| dep..

[MySQL] group by와 only_full_group_by 모드 완벽 이해하기

MySQL을 사용하다 보면 아래 오류 메시지를 만날 때가 있습니다.this is incompatible with sql_mode=only_full_group_by MySQL에서 기본적으로 활성화되어 있는 'ONLY_FULL_GROUP_BY' 모드가 내가 작성한 SQL문과 충돌하면서 발생하는 오류 메시지인데요. 왜 이런 오류가 발생하는지, group by를 사용할 때 주의할 점은 무엇인지, 어떻게 이런 오류를 해결할 수 있는지 알아보겠습니다. 1. ONLY_FULL_GROUP_BY 모드란?MySQL의 ONLY_FULL_GROUP_BY 모드는 표준 SQL 가이드라인에 부합하지 않는 (GROUP BY절이 포함된) 쿼리를 방지하기 위한 설정입니다. 이 모드를 활성화되면, GROUP BY 절에 포함되지 않은 ..

SQL 오래 사용해도 착각하기 쉬운 3가지 (COUNT(*), alias, DISTINCT)

1. COUNT(*)의 의미와 오해집계함수 중 하나인 COUNT는 특정 조건에 맞는 행의 수를 계산하기 위해 사용합니다. COUNT 함수를 사용하는 가장 기본적인 방법 중 하나가 바로COUNT(*) 입니다. employees 테이블에서 전체 행(레코드)의 개수를 카운트하기 위해 아래와 같이 사용합니다.SELECT COUNT(*) FROM employees; 이때 행의 개수가 100개라면 아래와 같이 결과를 출력합니다.| COUNT(*) ||----------|| 100 | 따라서 COUNT(*)은 각 테이블의 고유한 키(PRIMARY KEY)의 개수를 출력한다고 볼 수도 있습니다. 즉, COUNT(PRIMARY KEY)와 같은 방식인 거죠. 하지만 SQL을 공부하면서 우리는 "SELECT *..

반응형