SELECT name
from animal_ins
order by datetime
limit 1
SELECT datetime
from animal_ins
order by datetime
limit 1
SELECT animal_id,name
from animal_ins
where intake_condition<>'aged'
order by animal_id
SELECT animal_id, name, datetime
from animal_ins
order by name, datetime desc
💡기억해두어야할 것
ORDER BY 뒤에 여러 개의 컬럼을 나열하면 앞에 있는 컬럼부터 우선적으로 정렬한 후, 앞의 컬럼 값이 같을 경우 다음 컬럼을 기준으로 정렬한다.
order by name, datetime desc
이렇게 작성할 경우 name은 오름차순, datetime은 내림차순 정렬된다.
SELECT animal_id, name
from animal_ins
where animal_type='dog'
and name like '%el%'
order by name
SELECT count(user_id) users
from user_info
where age is null
SELECT max(price) max_price
from product
SELECT animal_type
, ifnull(name, 'no name') name
, sex_upon_intake
from animal_ins
order by animal_id
SELECT animal_type
, case
when name is null then 'No name'
else name
end name
, sex_upon_intake
from animal_ins
order by animal_id
둘 다 정답 O!
❌몇번 틀렸었는데 -> 이유는 'no name'으로 소문자로 써서였다..;
조건을 잘 지켜주자 ~!
그리고 ifnull 에서 문자로 반환하는 경우 ⭐작은따옴표 !!⭐ 명심!!
SELECT warehouse_id, warehouse_name, address
, ifnull(freezer_yn, 'N') FREEZER_YN
from food_warehouse
where address like '경기%'
order by warehouse_id
SELECT factory_id, factory_name, address
from food_factory
where address like '강원%'
order by factory_id
SELECT animal_id, name, date_format(datetime,'%y-%m-%d') '날짜'
from animal_ins
order by animal_id
이용한 함수
📌DATE_FORMAT()
함수 기본 개념
DATE_FORMAT() 함수는 MySQL에서 날짜(DATE 또는 DATETIME) 값을 특정 형식으로 변환할 때 사용된다.
🔻기본 문법
DATE_FORMAT(datetime_column, '형식')
.
.
오늘의 아티클
데이터 시각화는 왜 중요할까?
.
이 외에도, 코로나 바이러스 확진자 현황, 선거 결과를 알려주는 다양한 차트 등 시각화된 자료를 바탕으로 의사결정을 내리고 있음.
.
‘아하’순간을 통해 인사이트를 발견하다
데이터가 시각화되어 전달되면 우리 뇌는 빠른 속도로 많은 양의 정보를 처리할 수 있음.
[미국인들이 하루를 어떻게 보내는지]
💡각 활동은 카테코리별로 나누어 고유한 색으로 정의하고, 할애 시간을 면적으로 보여줌. ⇒ 데이터 테이블만으로는 찾기 어려운 많은 정보를 직관적으로 이해하고, 패턴을 찾고, 인사이트를 발견해낼 수 있도록 도움
[수감 비용과 수감 지역]
💡각 범죄자의 수감비용을 그들이 사는 지역에 매핑 → 비용이 높을 수록 붉은 색이 강조되도로록 디자인.
따라서, 한눈에 특정 지역에 수감 비용이 집중 된 것을 알 수 있었고 이러한 지역들에 공통적으로 교육 등의 공공자원이 많이 부족한 지역이라는 인사이트까지 도출할 수 있게함.
.
의사결정에 도움
1.시각화는 많은 양의 데이터와 정보를 담을 수 있다.
2.이해하는 데 특별한 과학이나 통계 등의 교육이 필요하지 않다.
3.우리 뇌는 시각화된 정보를 처리하는 데 탁월하다.
4.흥미로운 디자인으로 주제에 대한 관심을 끌고 집중을 보다 오래 유지할 수 있다.
실제 의사결정에 도움을 준 사례_2가지
🔻
🔑전염병의 원인을 알린 고스트맵
💥연구결과임에도 불구하고 주장이 무시되어왔었는데, 일종의 시각화를 통해 사람들에게 패턴을 쉽게 파악하게 하므로써 정부 당국의 의견을 바꾸는 데 성공했다는 점이 매우 인상적이었음.
🔑코로나 바이러스 시뮬레이션
오바마 대통령까지 시각화 자료를 사용하며,
사회적 거리두기에 도움을 줌
.
일상 속 데이터 시각화의 중요성
위와 같은 이점들을 가지고 있지만 이를 녹여내기 위해서는, 시각요소로 매핑되는 과정이 적절하게 디자인 되는 것이 중요⭐
.
.
핵심 개념 및 용어 정리
- 핵심 개념 : 데이터 시각화*, 매핑**
- 용어 정리 :
*: 데이터에서 발견한 정보를 시각적으로 이해할 수 있도록 그래픽 형태로 표현한 것,
**: 어떤 값을 다른 값에 대응시키는 과정
.
실무 적용 사례
실무 적용 : 이커머스 플랫폼- 고객 구매 행동
관련 사례 : 쿠팡, 컬리 cx 스코어 지표
가상 시나리오 :
🔻고객 구매 경로 분석
고객이 어떤 경로를 통해 제품을 찾고, 장바구니에 담은 후 왜 구매하지 않는지 문제점 파악 ➡✅주요 이탈 지점을 파악하여 개선 포인트 도출
🔻사용할 데이터 :
로그 데이터 (페이지 탐색 경로, 머문 시간, 클릭 패턴)
장바구니 추가 후 결제 완료 여부
🔻시각화 플랜:
사용자들이 제품 페이지에서 가장 많이 클릭하는 부분 분석
어제 내가 제안드린 목차에 맞춰 각자 내용을 재구성하는 시간을 가졌다.
- 목차 구상
1.데이터 집중직무
-필요역량
-수행업무
-채용공고
(1-1. 데이터분석가 in 연서님 도메인
1-2. 데이터분석가 in 대준님 도메인)
2.데이터 활용직무
2-1
PM
-필요역량
-수행업무
-채용공고
2-2
퍼포먼스 마케터
-필요역량
-수행업무
-채용공고
3. 집중직무와 활용직무의 공통점,차이점(간단 마무리용)
여러 번의 조율회의를 거쳐, 발표에 쓰일 자료를 최종적으로 취합했다.(구글독스작업)
사전캠프때 못풀었던 퀘스트 sql 달리기반 7번문제에 도전해보기로 했다.
1번.
각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.
a.
출력 결과에는 직원의 이름, 부서, 그리고 월급이 포함되어야 합니다.
답안처럼 서브쿼리를 사용해서 푸는 풀이
select e.name, e.department, e.salary
from employees e
where e.salary = (
select max(salary)
from employees e2
where e2.department=e.department
);
근데, 궁금증이 생겼다.
- 서브쿼리 안에 select 로 e.2 department를 불러오지 않아도 where절에 작성할 수 있나?
- 해당 where절이 의미하는 것이 무엇이지?
-> 바로 슬랙 질문방에 질문했다.
💥튜터님 답변
1/
서브쿼리는 Employees e2 테이블에서 실행되므로 e2.Department는 이미 존재하는 컬럼이다. 그래서 굳이 SELECT 절에서 가져오지 않아도 WHERE 조건에서 사용할 수 있는 것이다.(내가 너무 1055 오류 속에 갇혀있었던 것 같다 ㅠ)
2/
이 조건은 같은 Department에 속한 직원들끼리 비교하라는 뜻이다.
e.Department에 해당하는 Department에서 MAX 급여를 찾도록 제한하는 역할을 해주고,
이걸 빼면 돌리면 전체 Employees 중에서 MAX 급여를 찾는 쿼리가 되어버린다.
.
.
gpt가 with 를 이용해서도 풀 수 있다고 해서 풀어봤다 (서브쿼리가 효율적인 것 같긴하다)
with max_salary as (
select max(salary) salary, department
from employees
group by department
)
select e.name, e.department, e.salary
from employees e
join max_salary ms
on e.department=ms.department and e.salary=ms.salary
🔻풀이
select e.name, p.projectname, p.budget
from employeeprojects ep
join projects p
on ep.projectid=p.projectid
join employees e
on ep.employeeid=e.employeeid
where p.budget>=10000
마지막에 정렬조건은 보기좋으라고 내 맘대로 넣었다
🔻풀이
개인적으로 체감상 Lv6.보다는 쉬웠던 느낌이다. 그치만 여전히 좀 긴 쿼리면 기본구조더라도 막힐때가 있으니 !! 얼른 쿼리를 파바바ㅏ박 써내려갈 수 있는 사람이 되고싶다 !
직무 분석을 해보면서 느낀 점은.. 3년 이상, 5년 이상의 경력직을 뽑더라.. 그럴만도 한게 pm이라는 직무상 당연한 것 같기도 하다. 이쪽으로 인턴이나 어시스트 업무도 추후에 자세히 찾아봐야겠다.
내일 첫 라이브 세션인데, 기대가 된다 ! 그래서 조금 일찍 코드타카를 시작하려한다. (평소보다 좀 더 일찍 일어날 수 있겠지 ? ㅎㅎ)
아티클 스터디 주제도 흥미로웠다 !
💭그리고 마지막 느낀점은, 나.. 점점 질문 공포증을 극복하고 있는 것 같다. 오늘 당당히 슬랙 질문방에 질문을 남겼었는데, 튜터님께서 너무너무 친절하고 명확한 답변을 주셨다 (튜터님 이력이 어마무시하다..) 이제 나름 모르는 것이 생기면 자책하거나 당황하지 않고, 구글링을 하고 있는 나를 발견하는 순간이 많아진 것 같다. 오늘도 성장한 점을 찾은 것 같아 뿌듯하다!
내일 계획 ✔
~9:50 알고리즘 코드타카
~10:00 데일리스크럼
10:00~ sql 라이브 세션
14:00~ 오후 개인 스터디/과제
18:00~ 저녁 개인 스터디
~20:20 데일리스크럼
~21:00 TIL 작성