본문 바로가기

sql

(26)
[over 함수]sql에서 합계나 평균등 집계함수의 결과를 group by 없이 출력하기 sql에서 합계나 평균등 집계함수의 결과를 group by 없이 출력하기 안녕하세요. 이번 포스트에서는 over함수에 대해서 한번 같이 공부 해보도록 하겠습니다. 아마 유용하게 잘 쓰실수 있을 것 입니다. 실습 준비 다음과 같은 테이블을 생성하고, 데이터를 입력하도록 합니다. #스크립트에서 schema단위는 빠져 있습니다. create table rows_sql_test ( group_id varchar(10), seq int, created_goods_cnt int ); INSERT INTO rows_sql_test (group_id, seq, created_goods_cnt) VALUES ('A', 1, 123); INSERT INTO rows_sql_test (group_id, seq, create..
구글빅쿼리 유용한 문자 숫자 함수정리 구글빅쿼리 유용한 문자 숫자 함수정리 안녕하세요. 요즘 구글 빅쿼리 사용 많이들 하시더라구요. 구글빅쿼리에서 사용 할 수 있는 유용한 문자 숫자 함수들에 대해서 정리를 해보겠습니다. 구글빅쿼리 문자함수 starts_with, ends_with starts_with, ends_with 함수는 초성과 종성을 확인 해주는 문자 함수 입니다. 분석용으로 쓰이는 구글빅쿼리에서 많이 사용 되는 함수 입니다. SELECT STARTS_WITH('Hello', 'o') -- FALSE ,STARTS_WITH('Hello', 'H') -- TRUE ,ENDS_WITH('Hello', 'o') -- TRUE ,ENDS_WITH('Hello', 'H') -- FALSE 구글빅쿼리 문자함수 strpos strpos는 inst..
mysql 함수를 이용한 인덱스 생성하기 feat.virtual column mysql 함수를 이용한 인덱스 생성하기 feat.virtual column 안녕하세요. 이번에는 mysql에서 함수를 이용한 인덱스를 생성하는 방법은 안내 해드리려 합니다. 오라클에선 잘쓰던 함수를 이용한 인덱스를 Mysql 이나 Mariadb에서 사용 할 수 없어 답답 했었는데, 좋은 정보를 알게되어 공유를 해드립니다. 가상 컬럼 이란? Mysql 5.7 부터 지원되는 가상 컬럼은 가상의 칼럼을 둬서 수식과 조건문을 사용해 데이터의 가공 결과를 저장하는 것을 말합니다. 사용 방법에는 PERSISTENT(stored)와 VIRTUAL(generated-only)이라는 두 가지 타입이 존재합니다. 디폴트는 PERSISTENT 입니다. PERSISTENT virtual columns은 실제 데이터가 데이터..
error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션 error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션 안녕하세요. MariaDB에서 펑션를 개발하는 도중에 만난 에러에 대하여 처리 방법을 공유코자 포스트를 남깁니다. error 1422 이며, function을 개발하는 도중에 만나게 되었습니다. error 1422 Explicit or implicit commit is not allowed.... 해당 에러는 에러 메시지만 봐도 내용을 대강 알 수 있겠죠. 아래와 같이 파파고에서 친절하게 해석을 해줍니다. commit을 쓰지 못한다 인데.. 제가 작성한 펑션에는 커밋이 없었습니다. (뭘 많이 가렸죠? 죄송합니다..) 아무튼, commit이 ..
update auto_increment 컬럼, order by 로 error-1062 없이 실행 하기 update auto_increment 컬럼, order by 로 error-1062 없이 실행 하기 안녕하세요. 혹시, auto_increment 로 된 primary key 컬럼을 업데이트 할때 error-1062 Duplicate entry '1' for key 'orderby_test.PRIMARY' 에러가 나는것을 경험 하신적 있으신가요? 꼭 auto_increment가 아니더라도, 숫자로된 primary key 컬럼의 값을 균일하게 변경 하면서 update 할때 에러가 나는 경우가 있으셨을 겁니다. 해당 내용에 대한 실습을 한번 해보도록 하겠습니다. update, order by와 함께! 자, 실습에 필요한 데이터를 생성 해보도록 하겠습니다. 다음과 같이 테이블을 만들고 데이터를 넣도록 할께요..
mysql 실무에 유용한 sql 로직 모음 #02 mysql 실무에 유용한 sql 로직 모음 #02 지난 1편에 이어서 mysql 실무에 유용한 sql 로직 모음 2탄을 준비했습니다. 지난번과 마찬가지로 케이스 별로 유용한 sql 로직들에 대한 실습과 설명으로 진행해 나가겠습니다. Let's Go! 데이터를 가공하여 join 하기 테이블 두개를 join 해야하는데, 뭔가 연결고리가 있긴한데, 딱떨어지는게 없을때.. 데이터를 가공하여 join을 할 수 있답니다. 먼저 아래와 같이 두개의 테이블이 있습니다. 위에 있는 두테이블을 join 해야 하는데, 우선 join1 테이블의 text 컬럼과 join2 테이블의 text 컬럼을 보면 완전히 매칭이 되지 않습니다. 이럴때 어떻게 join을 하여 데이터를 연결 할 수 있을까요? 먼저 sql을 보고, 그리고 설명..
mariadb procedure 소스 보는 권한 해결 mariadb procedure 소스 보는 권한 해결 안녕하세요. 얼마전 사내 개발자분이 생성 되어 있는 procedure의 내부 소스를 보고 싶다는 요청을 하셨습니다. 그래서 실행이 되면 당연히 보실수 있을꺼라 생각하여 execute 권한이 있는 것을 확인하고 되실꺼라 했는데, 어랏? 보이지 않는다고 하시네요. 현재 권한 확인 그래서 지금 부여된 권한은 확인 해보았습니다. 저희는 dev라는 role을 생성해서 개발자분들의 권한을 관리하고 있기 때문에 해당 role에 부여된 권한을 확인 했습니다. show grants for dev; 결과, usage와 더불어 업무상 필요한 schema들에 적당하게 select, insert, update, delete, execute가 들어가 있는것을 확인 했습니다. ..
mysql 실무에 유용한 sql 로직 모음 #01 mysql 실무에 유용한 sql 로직 모음 #01 안녕하세요. mysql 또는 mariadb를 사용하시면서 실무에서 만나게 되는 다양한 sql 로직들에 대해서 정리를 해보도록 하겠습니다. 물론, 오라클이나 mssql등에서도 약간만 수정하시면 사용 하실 수 있는 로직들이니 한번씩 참고 하시면 되겠습니다. 많은 SQL 강의 수강생들이 문의 하시는 내용들 위주로 정리를 해보았습니다. 그럼 시작해 볼께요! #우선 아래 데이터를 직접 mysql DB나 mariadb에 넣으시고 테스트 해보셔도 되고, 아니면 본인 DB에 있는 데이터에 맞게 컬럼등을 수정해서 사용 하시면 됩니다. class_table_ddl.sql을 먼저 실행하고, 나머지 데이터를 insert 하시면 됩니다. 특정 컬럼의 유니크한 데이터 건수 카운트..