SQL

·SQL/MySQL
https://school.programmers.co.kr/learn/courses/30/lessons/164672 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 SELECT BOARD_ID,WRITER_ID,TITLE,PRICE, ( CASE WHEN STATUS = "DONE" THEN "거래완료" WHEN STATUS = "SALE" THEN "판매중" ELSE "예약중" END ) AS "STATUS" FROM USED_GOODS_BOARD WHERE CREATED_DATE = "2022-10-05" ORDER BY BOAR..
스파크 SQL 특징 스파크 SQL은 다음과 같은 특징을 갖습니다. 상위 수준의 정형화 API가 엔진으로 제공된다. 다양한 정형 데이터를 읽거나 쓸수 있다.(ex) JSON, csv, Parquet) BI의 데이터 소스나 MySQL 및 PostgreSQL과 같은 RDBMS의 데이터를 JDBC/ODBC 커넥터를 사용하여 쿼리할 수 있습니다. 스파크의 기능에 접근할 수 있는 SparkSession을 사용하면 쉽게 클래스를 가져오고 코드에서 인스턴스를 생성할 수 있습니다. 이에따라 SQL 쿼리를 실행하기 위해선 spark라고 선언된 SparkSession 인스턴스에서 spark.sql("SELECT * FROM myTableName")과 같은 sql() 함수를 사용합니다. from pyspark.sql impo..
·AWS
이번 동계 인턴을 하면서 AWS Athena에 대한 지식도 필요할 것 같아 공부하면서 정리하고자 블로그를 작성하였습니다. 보고 지적할 점이 있으면 말해주시면 감사하겠습니다. AWS Athena란? Amazon Athena는 표준 SQL을 사용하여 Amazon S3(Amazon Simple Storage Service)에 있는 데이터를 직접 간편하게 분석할 수 있는 대화형 쿼리 서비스입니다. 즉, S3에 저장된 로그 데이터를 쉽게 분석하는 기능을 제공해주는 서비스이며 CSV,JSON,text 로그 등의 데이터를 분석하는데 도움을 줍니다. Athena에서는 테이블과 데이터 베이스는 단순히 메타데이터에 대한 정의를 저장하고 있는 저장소일 뿐입니다. AWS Athena를 사용하는 이유 Athena는 Amazon..
·SQL/SQL개념
COUNT란?SQL의 집계함수중 하나로 db table을 조회하여 특정 field에 대해 행의 갯수를 세주는 함수이다.이번에는 count함수의 기본적인 사용법을 정리하며, 이를 응용하여 사용하는 방법에 대해서도 알려주고자 합니다.예시로 가상의 db table이 있다 가정합니다. Value110043 Table: count_test 이때 count의 기본 문법과 NULL을 count 할때, 그리고 중복 제거 함수인  DISTINCT함수 또한 사용했을 때 어떻게 값이 추출되는지 알아보겠습니다. SELECT COUNT(1) FROM count_test해당 값은 어떻게 나올까요?바로 6이 나옵니다. COUNT(1)은 COUNT(*)과 같이 작동합니다.  SELECT COUNT(value) FROM count_t..
·SQL/MySQL
기본 틀 함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼) PARTITION BY는 기존에 배운 GROUP BY랑 비슷한 원리라 생각하면 편하다. 집계 함수 (AVG,MIN,MAX,COUNT,SUM 등) MAX(컬럼) OVER (PARTITION BY 컬럼) Employee table id Name Salary DepartmentId MaxSalary 1 Joe 70000 1 90000 2 Jim 90000 1 90000 3 Henry 80000 2 80000 4 Sam 60000 2 80000 5 Max 90000 1 90000 예시 코드 SELECT id, Name, Salary, DepartmentId, Max(Salary) OVER (PARTITION BY Departme..
·SQL/MySQL
문제 https://www.hackerrank.com/challenges/challenges/problem?h_r=internal-search 문제가 길다보니 링크로 대체하겠다. 문제 풀이 SELECT hackers.hacker_id, hackers.name, COUNT(*) AS challenges_created FROM Challenges INNER JOIN hackers ON Challenges.hacker_id = Hackers.hacker_id GROUP BY hackers.hacker_id, hackers.name HAVING challenges_created = (SELECT MAX(challenges_created) FROM( SELECT hacker_id, COUNT(*) AS chall..
·SQL/MySQL
Subquery의 개념 subquery란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. 서브쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다. 서브쿼리를 사용 할 때 주의점 서브쿼리를 괄호로 감싸서 사용한다. 서브쿼리에서는 ORDER BY를 사용하지 못한다. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. FROM 절 서브쿼리 가상의 테이블을 만든다 생각하면 편하다. 동적으로 생선된 테이블이라 생각하면 된다. 임시적인 뷰이기 때문에 데이터베이스에 저장되지는 않는다. ex) SELECT daily_stats.week , AVG (daily_stats.incidents_daily FROM ( SELECT week, date, count (incident_id) A..
·SQL/MySQL
문제 You are given a table, Functions, containing two columns: X and Y. COLUMN TYPE X Integer Y Interger Two pairs (X1, Y1) and (X2, Y2) are said to be symmetric pairs if X1 = Y2 and X2 = Y1. Write a query to output all such symmetric pairs in ascending order by the value of X. List the rows such that X1 ≤ Y1. Sample Input X Y 20 20 20 20 20 21 23 22 22 23 21 20 Sample Output 20 20 20 21 22 23문제 코..
·SQL/MySQL
CASE문을 활용한 table 피봇팅 SELECT AVG(CASE WHEN categoryid = 1 THEN price ELSE NULL END) AS category1_price, AVG(CASE WHEN categoryid = 2 THEN price ELSE NULL END) AS category2_price, AVG(CASE WHEN categoryid = 3 THEN price ELSE NULL END) AS category3_price FROM Products category1_price category2_price category3_price 37.979166666666664 23.0625 25.16 이런식으로 예제문을 응용하여 코드를 진행 시키면 세로축으로 나오는 DB출력문들이 옆으로 데이..
Shine_sunho
'SQL' 태그의 글 목록