IT/DB (52) 썸네일형 리스트형 SQL 쿼리 날짜 차이 구하기 datediff 사용하는 방법 아래 쿼리 1,2번 뜻과 차이점은? 1. datediff(ymdt_1,lag(ymdt_1,1) over (order by ymdt_1) as 경과일수_A2. datediff(ymdt_1,lag(ymdt_1,1) over (partition by seq by ymdt_1) as 경과일수_B 주신 두 SQL 구문은 DATEDIFF와 LAG 윈도우 함수를 사용해서 날짜 간 차이, 즉 경과일수를 구하는 용도인데요. 둘 다 유사해 보이지만 PARTITION BY의 유무에 따라 중요한 차이가 생깁니다. ✅ 먼저 각 쿼리의 기본 구조1. 경과일수_ADATEDIFF(ymdt_1, LAG(ymdt_1, 1) OVER (ORDER BY ymdt_1)) AS 경과일수_A 전체 데이터를 대상으로 ymdt_1을 정렬하고, 바.. 큐브리드 쿼리 플랜에서 비용 수치를 낮추는 방법은? 큐브리드(CUBRID)에서 쿼리 실행 계획(쿼리 플랜)의 비용(cost) 은 DB 엔진이 해당 쿼리를 처리하는 데 예상되는 리소스 사용량(디스크 I/O, CPU 사용량, 네트워크 등)을 추정한 값입니다. 이 비용 수치가 낮을수록 더 효율적인 쿼리입니다. 다음은 큐브리드에서 쿼리 비용을 낮추는 주요 방법들입니다: ✅ 1. 적절한 인덱스 사용가장 중요한 요소입니다.WHERE, JOIN, ORDER BY, GROUP BY 등에 사용되는 컬럼에 인덱스를 생성하세요.예시:CREATE INDEX idx_table_a ON my_table(a);문자열 날짜 비교 시에도 a 컬럼에 인덱스를 걸면 아래처럼 쿼리에서 인덱스를 활용할 수 있습니다:WHERE a BETWEEN '20240501' AND '20240531'인덱.. sqlite 에서 rank 함수같은 역할은? 요일별로 상위 3개 조회하기 SQLite에서는 RANK() 함수와 비슷한 기능을 RANK() 또는 DENSE_RANK() 윈도우 함수로 구현할 수 있습니다.단, SQLite 3.25.0 이상에서 윈도우 함수(RANK(), ROW_NUMBER() 등)를 지원합니다.✅ 요일별 상위 3개를 구하는 쿼리 예제예를 들어 다음과 같은 테이블이 있다고 가정해볼게요: CREATE TABLE sales ( id INTEGER PRIMARY KEY, day TEXT, -- 요일: 'Mon', 'Tue', ... item TEXT, amount INTEGER); 이때, 요일(day)별로 판매금액(amount) 상위 3개 항목을 구하고 싶다면 다음과 같이 RANK() 또는 ROW_NUMBER()를 활용할 수 있습니다.✅ ROW_.. 데이터베이스 /*+ordered use_nl */ 힌트를 쓰면 무조건 성능이 좋은걸까? /*+ ordered use_nl */ 힌트를 사용하면 성능이 좋아질 수도 있지만, 반대로 성능이 급격히 나빠질 수도 있습니다. 힌트는 옵티마이저가 선택하는 기본 실행 계획보다 더 나은 것을 사람이 직접 제시할 수 있을 때만 효과적입니다. 🔍 /*+ ordered use_nl */ 설명✅ ordered옵티마이저에게 FROM 절에 나온 순서대로 조인을 수행하라고 지시합니다.기본적으로는 옵티마이저가 테이블 순서를 바꿔 최적화를 시도합니다.✅ use_nlNested Loop Join (중첩 반복 조인) 을 사용하라고 지시합니다.일반적으로 작은 테이블을 먼저 읽고, 큰 테이블을 조건에 따라 반복 접근하는 방식입니다.⚠️ 언제 좋은 성능이 나올까?성능 향상이 되는 경우:첫 번째 테이블이 매우 작을 때 (드라이빙.. 데이터베이스 함수에서 cast() 함수 역할은? CAST() 함수는 **SQL에서 데이터 타입을 변환(type conversion)**할 때 사용하는 표준 함수입니다.✅ CAST() 함수란?📌 정의:CAST()는 하나의 데이터 값을 다른 데이터 타입으로 변환할 수 있게 해주는 SQL 함수입니다.🧩 기본 문법:CAST(값 AS 데이터타입) ✅ 사용 목적숫자 → 문자열, 문자열 → 숫자, 날짜 → 문자열 등 타입 간 변환 필요할 때 사용데이터 타입 불일치 오류 방지 (예: 문자열과 숫자 비교 시)테이블 간 조인이나 연산 시 타입 맞춤✅ 예시1. 숫자 → 문자열SELECT CAST(123 AS VARCHAR);- 결과: '123' 2. 문자열 → 숫자SELECT CAST('456' AS INT) + 10;-- 결과: 466 3. 문자열 → 날짜SELEC.. sqLite 날짜형태 변경하는 쿼리는? SQLite에서 날짜 형태를 변경하거나 원하는 형식으로 출력하려면 strftime() 함수를 사용합니다.✅ 1. strftime() 함수 기본 문법 strftime('포맷', 날짜값) 날짜값은 ISO8601 형식 (YYYY-MM-DD, YYYY-MM-DD HH:MM:SS) 또는 SQLite 지원 날짜/시간 함수 결과여야 합니다.✅ 2. 자주 쓰는 날짜 포맷 코드포맷설명예시%Y연도 (4자리)2025%m월 (2자리)06%d일 (2자리)04%H시 (00–23)13%M분30%S초45 ✅ 3. 예제 쿼리📅 날짜를 YYYY-MM-DD 형식으로 출력SELECT strftime('%Y-%m-%d', 'now');-- 결과: 2025-06-04 📅 날짜를 YYYY/MM/DD 형식으로 출력SELECT strftime.. 데이터베이스 sql avg 평균 함수를 조건절에 쓰는 방법은? AVG() 함수는 **집계 함수(aggregate function)**이기 때문에 일반적인 WHERE 절에는 직접 쓸 수 없습니다.하지만 조건을 걸고 평균을 구하거나, 평균값을 조건으로 필터링하려면 아래와 같은 방법을 사용해야 합니다: ✅ 1. 특정 조건을 만족하는 값들의 평균 구하기 → WHERE + AVG() SELECT AVG(score) AS avg_score FROM students WHERE class = 'A'; 🔍 WHERE절은 평균을 구할 대상을 필터링합니다.✅ 2. 평균값을 기준으로 조건 걸기 → HAVING 사용HAVING은 집계 함수의 결과에 조건을 걸 때 사용합니다. GROUP BY와 함께 자주 쓰입니다.예: 각 반의 평균 점수가 80 이상인 반만 조회 SELECT class, .. sqlite에서 평균값 구하는 함수는? SQLite에서 **평균값을 구할 때 사용하는 함수는 AVG()**입니다.✅ AVG() 함수📌 정의:AVG()는 지정된 열(column)의 평균값을 계산하는 **집계 함수(aggregate function)**입니다.숫자형 컬럼만 계산에 포함됩니다 (NULL은 무시됨).✅ 기본 문법 SELECT AVG(컬럼명) FROM 테이블명; ✅ 예제1. 학생들의 평균 점수 구하기 SELECT AVG(score) AS avg_score FROM students; idnamescore1홍길동802김철수903이영희NULL → 결과: 85.0 (NULL은 제외)2. 조건을 주는 경우 (예: 90점 이상만 평균) SELECT AVG(score) AS avg_top_score FROM students WHERE score .. 이전 1 2 3 4 ··· 7 다음