-
[SQL][해커랭크] Draw The Triangle 1 / SET @, REPEAT데이터 분석 공부/SQL 2024. 5. 17. 12:52728x90
https://www.hackerrank.com/challenges/draw-the-triangle-1/problem?isFullScreen=true
Draw The Triangle 1 | HackerRank
Draw the triangle pattern using asterisks.
www.hackerrank.com
문제
P(R) represents a pattern drawn by Julia in R rows. The following pattern represents P(5): * * * * * * * * * * * * * * * Write a query to print the pattern P(20).
풀이
SET @NUMBER = 21; SELECT REPEAT('* ', @NUMBER := @NUMBER-1) FROM information_schema.tables LIMIT 20;
SET | 사용자 변수 설정과 사용
SET @number는 SQL에서 사용자 변수(user-defined variable)를 설정하는 데 사용되는 구문입니다.
사용자 변수는 세션 수준에서만 유효하며, 특정 값을 저장하고 그 값을 다양한 쿼리와 연산에 사용할 수 있습니다.
변수 설정
SET 구문을 사용하여 사용자 변수를 설정할 수 있습니다.
예를 들어, @number라는 변수를 10으로 설정하려면 다음과 같이 작성할 수 있습니다.
SET @number = 10;
또는 SELECT 구문을 사용하여 변수를 설정할 수도 있습니다.
SELECT @number := 10;
설정된 변수는 SQL 쿼리 내에서 다른 변수처럼 사용할 수 있습니다.
예를 들어, 변수 @number를 사용하는 간단한 쿼리는 다음과 같습니다.
SELECT @number;
또한, 변수를 다른 계산이나 조건문에서도 사용할 수 있습니다.
예를 들어, 테이블에서 특정 조건을 만족하는 행을 선택할 때 변수 @number를 사용할 수 있습니다.
SET @number = 1000; SELECT * FROM employees WHERE salary > @number;
주의 사항
- 사용자 변수는 선언 없이 바로 사용할 수 있습니다. 초기화되지 않은 변수를 사용하면 NULL 값이 됩니다.
- 변수 이름은 대소문자를 구분하지 않습니다.
- 사용자 변수는 세션 수준에서만 유효하며, 세션이 종료되면 변수도 사라집니다.
사용 예제
다음은 사용자 변수를 설정하고, 그 변수를 사용하여 테이블의 데이터를 조작하는 예제입니다.
이 예제에서 @discount 변수를 사용하여 Electronics 카테고리의 제품 가격에 10% 할인을 적용합니다.
SET @discount = 0.1; UPDATE products SET price = price * (1 - @discount) WHERE category = 'Electronics';
REPEAT | 문자열을 반복하여 생성
이 함수는 주로 텍스트 패턴을 생성하거나 특정 문자열을 여러 번 반복하여 출력할 때 유용합니다.
구문
REPEAT(string, count)
- string: 반복할 문자열입니다.
- count: 문자열을 반복할 횟수입니다. 이 값은 정수여야 합니다.
:= | 할당 연산자
@NUMBER := @NUMBER - 1는 SQL에서 사용자 변수를 갱신하는 구문입니다.
이 구문은 현재 값에서 1을 뺀 값을 다시 같은 변수에 저장합니다.
:= 연산자는 할당 연산자로, 변수에 값을 할당할 때 사용됩니다.
이 구문은 주로 루프나 반복적인 작업을 수행할 때 카운터 변수로 사용됩니다.
예를 들어, 테이블의 행을 처리하거나 특정 조건을 만족할 때까지 작업을 반복하는 데 유용합니다.
information_schema.tables | 시스템 뷰
데이터베이스 스키마 정보를 저장하고 제공하는 시스템 뷰입니다.
이 뷰는 데이터베이스의 모든 테이블에 대한 메타데이터를 포함하고 있습니다.
그 중 tables 뷰는 특히 테이블에 대한 정보를 제공하는 역할을 합니다.
이 문제에서는 table명이 따로 지정되어 있지 않으므로,
데이터베이스 스키마 정보를 담고 있는 시스템 뷰에서 메타데이터를 가져오는 형식을 취했습니다.
'데이터 분석 공부 > SQL' 카테고리의 다른 글
[SQL] 버뮤다 삼각지대에 들어가버린 택배 / DATE() , SUBSTR, 와일드카드 (0) 2024.06.13 [SQL] solvesql 지역별 주문의 특징 / COUNT(DISTINCT CASE WHEN) 절 활용 문제 / 피벗테이블, 집계 (0) 2024.06.13 [SQL][해커랭크] The PADS / 문자열 출력 (0) 2024.05.14 [SQL][해커랭크] weather observation station 9, 10 / 정규표현식, 와일드카드 (0) 2024.05.13 mysql start 시 cannot change directory to /nonexistent: No such file or directory 오류 해결 (0) 2024.04.22