Data Engineering
-
프로그래머스 SQL TEST - 입양 시각 구하기(2)Data Engineering/SQL 2022. 4. 12. 01:13
최근 코딩 테스트 문제를 이것 저것 풀다가 생각보다 MYSQL 문법이 PostgreSQL과 다르다는 것을 알게 되었다.. (MySQL에 없는 기능이라서 찾다가 시간 다 간적도 있음..) 이 문제는 조금 복잡하게 푼 것 같아서 기록해두고 다른 풀이 방법이 있으면 수정하려고 포스팅 한다. (항상 SQL공부하면서 느끼는 건데 효율적인(?) 코드를 짜고 테스트하는 방법을 잘 모르겠다) 문제 ANIMAL_OUTS테이블에서 시간대별로 입양보낸 횟수를 count해서 출력하면 되는데 테이블에 없는 시간도 만들어야한다. 예를 들어 테이블에는 7시 1건, 8시 2건만 있으면 출력되어야하는 결과는 나머지 시간은 0회, 7시 1회, 8시 2회로 표시한 테이블. 풀이 방법 1. Datetime에서 시간만 추출하기 위해 SUBS..
-
데이터 레이크(Data Lake), 데이터 웨어하우스(Data Warehouse), 데이터 마트(Data Mart)의 기초 개념Data Engineering 2022. 3. 29. 14:29
구글링을 하면 좋은 테크블로그들이 많지만 그런 글들은 정말 잘 하신 분들이 쓴 글들이기 때문에 전문적인 용어들이 많이 섞여있거나 중간에 설명이 생략된 부분이 많아 처음 공부를 시작하는 사람들 입장에서는 조금 이해하기 어려울 수 있다는 생각이 들었다. 회사에서 데이터 웨어하우스 구축 프로젝트를 처음 시작하면서, 그리고 그 프로젝트가 데이터 레이크 구축 프로젝트로 전환되면서 각 개념에 대해 책을 읽고 강의를 찾아보며 공부했던 개념들을 최대한 쉽게 적어보려 한다. 데이터 레이크, 데이터 웨어하우스, 데이터 마트는 데이터를 어떤 목적으로 저장하느냐에 따른 구분이라고 볼 수 있다. 각 용어에 대한 개념을 정립하기 전에 가장 먼저 유념해야할 점은 회사마다 정의하고 있는 개념이 어느 정도 다를 수 있다는 것이다. 따..
-
컴퓨터 과학이 여는 세계를 통해 생각해 본 추상화Data Engineering/Books 2021. 11. 7. 20:13
컴퓨터 과학이 여는 세계 - 이광근 저 처음 공부할 때는 툴의 사용에 집중했다. 입문 수준으로는 충분했으나 예상치 못한 에러를 만나는 등 응용이 필요한 상황이 생기거나 자꾸만 에러에 부딪히면서, 또는 내가 툴을 골라야 할 경우가 계속 발생하면서 조금 더 깊이있는 공부가 필요하겠다는 생각이 들었다. 하드웨어가 먼저 발명이 되었고 소프트웨어는 하드웨어의 동작 방식에 기반하여 발명된다. 소프트웨어의 확장에 따라 요구사항에 맞게 하드웨어는 발전한다. 결국 소프트웨어와 하드웨어는 서로 호환적인 관계이기때문에 컴퓨터의 시작부터 흐름을 알아야겠다고 생각했으나, 어디서부터 어떤 자료를 참고하여 공부해야할 지 막막했는데 함께 일하는 분께서 이 책을 추천해줬다. 컴퓨터의 시작은 1936년 엘런 튜링이 쓴 논문에 있다. 해..
-
진화된 마케팅 그로스 해킹: Chapter 4,5,6 요약Data Engineering/Books 2021. 8. 15. 21:00
그로스 해킹 절차의 목표이자 혜택은 빨리 배움으로써 더 많이 배우는 것이다. 대부분의 실험은 기대한 결과를 내는데 실패하기 때문에 실험을 많이 함으로써 빠르게 기대한 결과에 도달하는 것이 그로스해킹의 목표라 할 수 있다. 이는 복리와 같은 효과를 내는 급속 실험을 운영하는 방법이며 '매달 전환률을 5%씩 향상시킴으로써 한 해에 80%이상의 개선이 이루어지게 하기'처럼 단기적으로 작은 목표들을 달성해서 장기적으로 큰 성과를 이룰 수 있게 하는 방법을 포함한다. 실험은 엉성한 실험이나 부적절한 실험 및 결과 수집, 브레인 스토밍 등에 따른 자원 낭비를 막고 이익을 극대화 하기 위해 그로스 해킹의 절차를 따르는 것이 중요하다. 그로스 해킹의 단계 데이터 분석 → 식견 수집 → 아이디어 창출 → 실험의 우선순위..
-
몫과 나머지 구하기Data Engineering/SQL 2021. 8. 9. 00:04
몫은 FLOOR 함수, 나머지는 MOD 또는 REMAINDER함수로 구할 수 있다. 어떤 DB에서는 %도 사용 가능한 것 같긴 한데.. Oracle이 표준이니까 일단 함수로 공부하는 것이 좋을 듯 하다. - Oracle에서는 %연산자가 없다 - MSSQL에는 %연산자가 사용 가능하다고 한다 MOD함수와 REMAINDER 함수는 결과값은 일치하나 내부적으로 연산 방법이 다르다고 한다. 속도면에서는 큰 차이가 없다고 하니 아무거나 쓰면 될 것 같다. -15를 3으로 나누고 싶다면 나눌 값은 15, 나누는 값은 3 - 몫 구하기 FLOOR(나눌 값/나누는 값) - 나머지 구하기 MOD(나눌 값,나누는 값) REMAINDER(나눌 값,나누는 값)
-
문자열 합치기 - CONCAT과 ||Data Engineering/SQL 2021. 8. 8. 23:55
SQL에서 문자열을 합치는 방법은 CONCAT 함수를 사용하는 것과 ||(Double vertical bars)를 사용하는 방법 두 가지가 있다. 여러 개의 문자열을 합치고자 할 때, 각 DB별로 방법이 다를 수 있기 때문에 주의해야한다. ORACLE, MYSQL 제외 DB SELECT CONCAT(first_name, ' ' ,last_name) FROM EMPOYEES SELECT first_name || ' ' || last_name FROM EMPOYEES 두 코드의 실행 결과가 동일하다. ORACLE 오라클의 CONCAT함수는 매개변수를 두 개만 받는다. 따라서 두 개 이상의 값/행을 연결하기 위해서는 중첩 concat을 사용하거나 ||를 사용해야한다. 어느 행에 결측치가 존재할 경우, 결측치를..