SQL
-
SQLite 행번호(행넘버, row number) 조회하고 UPDATE하기Database/SQLite 2024. 2. 28. 20:41
기존테이블에는 아이디와 네임, 같은 기본 정보들만 존재하는데 순번이 추가되어야 하는 상황이다. 이 순번은 서로 바뀔 수도 있기 때문에 꼭 칼럼을 추가해야 한다. 순번 칼럼을 추가하면, 기존에 있는 데이터는 순번 데이터가 NULL이 되기 때문에 기존 데이터는 등록일 기준으로 순번 데이터를 업데이트 하려고 한다. SEQ_NO 칼럼을 추가 한 직후의 테이블을 조회하면 아래와 같다. 1. 순번 조회하기SQLite에는 순번을 쉽게 구할 수 있는 내장 함수를 지원한다. (3.8.3 이상) 대표적으로 RANK와 ROW_NUMBER가 있다. RANK와 ROW_NUMBER는 사용하는 방법은 동일하지만 결과는 조금 다르다.1) RANK()SELECT RANK() OVER (ORDER BY CREATE_DATE) AS SE..
-
MSSQL 소계, 합계 만드는 쿼리Database/MSSQL 2019. 4. 23. 12:04
다음은 UNION과 Order by를 이용해 소계와 합계를 만드는 쿼리에 대한 설명이다. -- 테이블 정의 DECLARE @Table1 table ( _Name varchar(30) null, _Date varchar(10) null, _Number int null ) @Table1에 아래 그림과 같이 데이터가 들어있으며 사람별 _Number의 합계와 전체 _Number의 합계를 구하고자 할 때 SELECT _Name, _Date, _Number, 1 as Ordering FROM @Table1 UNION ALL SELECT _Name, '소계' as _Date, SUM(_Number) as Number, 1 as Ordering FROM @Table1 GROUP BY _GroupName UNION AL..
-
MSSQL 전체 SUM이 아닌 점차적으로 더하고(SUM) SELECTDatabase/MSSQL 2019. 1. 23. 15:21
SELECT sum(column) FROM table 을 하면 column의 row값 전체합을 조회한다.column의 전체합이 아니라row를 하나씩 점차적으로 sum을 하는 방법이 어디 없을까? SELECT ID, ( SELECT SUM(ValueColumn) FROM Test T2 WHERE T2.ID > 쿼리실행 >> 쿼리결과그림에서 W_UserAtt_Group 칼럼의 값은 전부 1인데 이 칼럼을 점차 더해주는 쿼리를 사용하여 GradualSum에서 W_UserAtt_Group 값이 1씩 증가한 것을 볼 수 있다.
-
더 빠른 SQL 쿼리를 위한 데이터베이스 튜닝 규칙 21가지Database 2019. 1. 2. 15:16
더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙 개발자 /애플리케이션InfoWorld누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다. SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 ..