검색 본문
security486.tistory.com security [데이터베이스] Group by, Having, Order by, Join 01 Group by 02 Having 03 Order by 04 Join 01 Group by 1. GROUP BY 절 GROUP BY 절이란? - 데이터를 그룹별로 묶을 수 있도록 해주는 절 - GROUP BY 뒤에는 그룹핑의 기준이 되는 컬럼이 오게 됨 - 컬럼은 하나가 될 수도 있고 그 이상이 될 수도 있음 2. 집계함수 집계함수란? - 데이터를 그룹별로 나누면 그룹별로... 2024.05.14 블로그 검색 더보기 heabom-122.tistory.com 해봄 [SQL입문] 메타코드 강의 후기_ 제3과목-HAVING 1. HAVING 구문 HAVING 절만 단독으로 사용할 수 없다! 위치는 GROUP BY 절 뒤에 와야한다. GROUP BY 이후 그룹화 된 테이블에 조건을 적용한다. * ORDER BY는 무조건 맨 뒤라 ORDER BY 보단 앞에 온다. 이런 식으로 사용하여야한다. products 테이블에서 productline을 groupby 한 후 productline 이 'planes' 인것만 가져온다. * 실습 할 때 GROUP BY 절 먼저 실행 해 보고 HAVING 절 실행 하며 공부하기 더보기 문제2번은 좀 헷갈렸다. 연도별 총 주문량을 가져 와 2. IF / CASE 구문 말그대로 IF 만약이다! condition이 참이라면 large 를 출력하고 거짓이라면 small 출력하는 것이다. IF(condition, value_if_true, value_if_false) IF문은 SELECT 절에 사용된다 !! CASE 문은 여러 조건을 테스트 하고 여러 결과중 하나를 반환한다! 크게 보면 SELECT와 FROM이 있는것이다. SELECT 절 안에 하나의 컬럼을 CASE 구문으로 썻다고 생각하면 된다.buyprice 가 20보다 작으면 cheap 20과 50사이라면 moderate 모두 아니라면 ex 4. JOIN 구문 GROUP BY 다음으로 중요한 구문이다! 하나의 테이블에서만 데이터를 가져오는게 아니라 여러 테이블에서 데이터를 가져올 수 있다. 각각의 테이블에서 존재하는 여러 KEY를 연결시켜서 조회를 하는 것이 JOIN이다. A테이블과 B테이블의 관계를 통해서 JOIN 시키는것이다. 위와 같은 테이블에서 id 가 key인것이다. 1) INNER JOIN ex3 테이블이 주인공이고 ex3테이블을 ex4 테이블과 조인한다. ON뒤가 조건 ex3의 id와 ex4의 id와 조인한다. 겹치는게 1밖에 없어 1만 가져온것이다. 2) LEFT JOIN 15 HAVING 절만 단독으로 사용할 수 없다! 위치는 GROUP BY 절 뒤에 와야한다. GROUP BY 이후 그룹화 된 테이블에 조건을 적용한다. * ORDER BY는 무조건 맨 뒤라 ORDER BY 보단 앞에 온다. 이런 식으로 사용하여야한다. products 테이블에서 productline을 groupby 한 후 productline 이 'planes' 인것만 가져온다. * 실습 할 때 GROUP BY 절 먼저 실행 해 보고 HAVING 절 실행 하며 공부하기 더보기 문제2번은 좀 헷갈렸다. 연도별 총 주문량을 가져 와 메타코드 metacode sql공부 SQLD SQL실습 sql입문 메타코드M MetacodeM SQL혼공 sql강의추천 2024.04.24 o5e2o5.tistory.com JERI LOG [sql] 5. 그룹함수 | GROUP BY절 | HAVING절 1. 그룹함수의 개념 및 특징 1) 그룹함수의 개념 매개변수로 다수의 값을 전달받아 가공처리하여 결과값을 반환하는 함수 주의) 딱 한 건의 결과만을 반환 즉, 행이 한줄이다 = 한 행의 값으로 반환된다! COUNT함수 MAX함수 MIN함수 SUM함수 AVG함수 .. 2) 그룹함수의 특징 그룹함수는 다른 검색대상과 같이 사용하면 그룹함수와 검색대상의 검색행 갯수가 서로 다르기 때문에 에러 발생함 그룹함수끼리 나열해 사용은 가능! -- COUNT(EMPNO)는 결과값이 1행이고, ENAME은 결과값이 여러행이기 때문 ERROR 발생 SELECT COUNT(EMPNO 2. COUNT(컬럼명) 함수 다수의 컬럼값에 갯수를 반환하는 함수 검색행의 갯수 반환 *사용 가능 -- 1) -- EMP테이블에 저장된 EMPNO컬럼의 컬럼값이 몇개니? SELECT COUNT(EMPNO) FROM EMP; --14개 행이 있어요! -- 2) -- 🔥EMP테이블에 저장된 모든 행(*)의 갯수 몇개니?🔥 -- **COUNT함수**는 **컬럼명** 대신 **기호**를 사용해 모든 컬럼 표현 가능 (COUNT함수 유일) -- **페이징 처리**를 하려면 전체 행의 갯수를 알아야함 (그 때 사용함) -- ex) 쇼핑몰의 등록된 제품의 갯수? , 가 3. MAX(컬럼명) 함수 다수의 컬럼값 중 최대값을 반환하는 함수 -- 모든 사원들 중(EMP테이블에서) 최대 급여는 얼마? SELECT MAX(SAL) FROM EMP; -- 모든 사원들 중(EMP테이블에서) 이름이 ~X에 가까운 사람? SELECT MAX(ENAME) FROM EMP; -- 모든 사원들 중(EMP테이블에서) 최근 입사일은 얼마? SELECT MAX(HIREDATE) FROM EMP; 4. MIN(컬럼명) 함수 다수의 컬럼값 중 최소값을 반환하는 함수 -- 모든 사원들 중(EMP테이블에서) 최소 급여는 얼마? SELECT MIN(SAL) FROM EMP; -- 모든 사원들 중(EMP테이블에서) 이름이 A~에 가까운 사람? SELECT MIN(ENAME) FROM EMP; -- 모든 사원들 중(EMP테이블에서) 오래된 입사일은 얼마? SELECT MIN(HIREDATE) FROM EMP; 5. SUM(컬럼명) 함수 다수의 컬럼값 (숫자값)에 대한 합계를 계산하여 반환하는 함수 -- 모든 사원들(EMP테이블에서)의 급여의 합계는? SELECT SUM(SAL) FROM EMP; 6. AVG(컬럼명) 함수 다수의 컬럼값(숫자값)에 대한 평균을 계산하여 반환하는 함수 -- 모든 사원들(EMP테이블에서)의 급여의 평균은? SELECT AVG(SAL) FROM EMP; --소숫점 두번째 자리까지 반올림 SELECT ROUND(AVG(SAL),2) FROM EMP; 7. 🔥만약 그룹함수 계산 시 NULL이 있다면? NULL은 계산할 수 없으므로 제외되어 계산됨 이럴 때는 NULL을 0으로 변환하여 계산 해주어야 함 NVL( )함수 이용 --1) --EMP테이블에 저장된 모든 사원의 성과급 평균을 계산하여 검색 --검색실패 : 모든 사원이 아닌 성과급이 NULL이 아닌 사원들끼리의 성과급 평균 계산 SELECT AVG(COMM) FROM EMP; --2) --NVL함수를 사용하여 성과급이 NULL인 경우 0으로 변환하여 평균 성과급 계산되도록 검색 SELECT AVG(NVL(COMM,0)) FROM EMP; -- 검색성공 SELECT CEI 8. GROUP BY절 1) GROUP BY절의 필요성 🔥테이블 내 그룹짓기하여 계산하고 싶다면? -- EMP테이블에 저장된 모든 사원에 대한 인원수 검색 SELECT COUNT(*) FROM EMP; 매우 불편하다!! 개선필요!!!! 부서갯수 확인하고, 각각 카운트해야함!!!!!!! → GROUP BY절 도입 --EMP테이블에 저장된 모든 사원을 부서별로 구분하여 인원수 검색 SELECT DISTINCT DEPTNO FROM EMP; SELECT COUNT(*) FROM EMP WHERE DEPTNO=10; SELECT COUNT(*) FROM EMP 9. HAVING절 전제조건) 그룹함수 -> GROUP BY절 -> HAVING절 GROUP BY에 의해 그룹화된 검색결과에서그룹조건이 참인 그룹만 검색하는 기능 HAHVING은 GROUP BY가 없다면 사용불가능!!!! SELECT 그룹함수(컬럼명)[,검색대상,...] FROM 테이블명 [WHERE 조건식] GROUP BY {컬럼명|연산식|함수},{컬럼명|연산식|함수},... HAVING 그룹조건식 [ORDER BY {컬럼명|연산식|별칭|COLUMN_INDEX} {ASC|DESC},...] 1) HAVING절 예제 --1) --EMP테이블에 저장된 10. 연습문제 문제1. 사원테이블에서 부서별(DEPTNO) 인원수가 6명 이상인 부서코드 검색 --1) SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO HAVING COUNT(*)>=6; --2) --주의 --SUM(DEPTNO)함수 사용하면 부서코드끼리 합산한 값이 출력됨!! SELECT DEPTNO, SUM(DEPTNO) FROM EMP GROUP BY DEPTNO HAVING SUM(DEPTNO)>=6; --검색실패 문제2. 사원테이블로부터 부서번호, 업무별 급여합계를 계산하고자 한다. 다음과 같은 결 44 전제조건) 그룹함수 -> GROUP BY절 -> HAVING절 GROUP BY에 의해 그룹화된 검색결과에서그룹조건이 참인 그룹만 검색하는 기능 HAHVING은 GROUP BY가 없다면 사용불가능!!!! SELECT 그룹함수(컬럼명)[,검색대상,...] FROM 테이블명 [WHERE 조건식] GROUP BY {컬럼명|연산식|함수},{컬럼명|연산식|함수},... HAVING 그룹조건식 [ORDER BY {컬럼명|연산식|별칭|COLUMN_INDEX} {ASC|DESC},...] 1) HAVING절 예제 --1) --EMP테이블에 저장된 2024.05.07 dongdong-hoon.tistory.com 낼름낼름_동동이 [ASAC 11일차] group by, having, join GROUP BY절 그룹으로 묶어주는 역할 집계 함수(Aggregate Function)과 함께 사용 효율적인 데이터 그룹화(Grouping) ex) 사용자 별로 구매한 개수를 합쳐서 출력하고 싶다. select userid, sum(amount) from buybtl group by userid 유저별로 구매한 횟수가 2회 이상일 수 있고, 한번 구매할 때 2개나 5개 등등으로 살 수 있으니까, 이를 합산하기 위해서 유저별로 그룹화를 해줘야 계산할 수 있다. 참고) group by와 함께 자주 사용되는 집계함수 간단 실습(group by) # buytbl에서 사용자(userid)가 #구매한 물품의 구매액 (수량 * 가격)을 보려고 한다. select userID, sum(amount) as 총 구매 수량 from buytbl group by userID order by userID; #buytbl에서 사용자(userid)가 #구매한 물품의 구매액 (수량 * 가격)을 보려고 한다. select userID, sum(amount*price) as 총 구매액 from buytbl group by userID order by userID; #전체 구매자가 구매 Having 절 WHERE 과 비슷한 개념으로 조건 제한 하는 것이지만, 집계 함수에 대해서만 조건을 제한 하는 것이다. HAVING절은 꼭 GROUP BY절 다음에 나와야 한다. 이 순서가 바뀌면 동작하지 않는다. # 사용자별로 총 구매액 구하기 select userID as "사용자", sum(price*amount) as "총 구매액" frim buytbl group by userID; # 총 구매액이 1000이상인 사용자에게만 사은품 증정하려고 할 때, # 어떤 사람인지 추출해보자 select userID as "사용자", sum( +참고) ROLLUP 총합 또는 중간 합계가 필요하다면 사용 GROUP BY 절과 함께 WITH ROLLUP 문 사용 #다음 과 같이 사용하면 된다 select num, groupName, SUM(price * amount) as '비용' from buytbl group by groupName, num WITH rollup 2. JOIN 조인 (Join) 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것 inner join, outer join, cross join, self join 데이터베이스 테이블 중복과 공간 낭비를 피하고 CROSS JOIN # cross join 의 경우 그냥 n:m 으로 모두 대응을 시킨다. # 만들 수 있는 모든 조합을 만들어 낸다. # 언제 사용해??? # 주어진 데이터들을 가지고 만들 수 있는 조합을 만들어 낼 때 # 그리고 그 중에서 내가 필요한 조합들을 추려 갈때 # 방법 1) 누가 앞에 오든 상관 없다. 누가 앞에 있냐 차이일 뿐 결과는 동일 select * from movies cross join members; # 방법 2) 1개가 아니라 테이블을 그냥 나열 하기 select * from movies, members; INNER JOIN # inner join을 앞의 cross join을 기반으로 where으로 추릴 수 있다. #-> 서브 쿼리 select members.first_name, memebers.last_name, movies.title from members, movies where movies.id = members.movie_id; # 앞에서의 cross join에서의 부분을 조건으로 처리하면 # 양쪽에 둘다 존재하는 값만 살아남으므로 # inner join 의 결과를 만들어 낸다. # 기준을 members 테이블로 한다면 select ME LEFT JOIN, RIGHT JOIN Left join의 예시 # 영화가 왼쪽 기준일 때, 영화를 기준으로 사람 정보 붙이기 select * from movies as m left join members as ME on ME.movie_id = m.id; # 영화를 기준으로 사람의 정보를 붙일 때 보고자 하는 정보가 # 제목, 회원 이름일때! select M.title, me.first_name, Me.last_name from movies M left join members as ME on ME.movie_id = M.id; # 그럼 영화를 오른쪽에 두고 회원 8 WHERE 과 비슷한 개념으로 조건 제한 하는 것이지만, 집계 함수에 대해서만 조건을 제한 하는 것이다. HAVING절은 꼭 GROUP BY절 다음에 나와야 한다. 이 순서가 바뀌면 동작하지 않는다. # 사용자별로 총 구매액 구하기 select userID as "사용자", sum(price*amount) as "총 구매액" frim buytbl group by userID; # 총 구매액이 1000이상인 사용자에게만 사은품 증정하려고 할 때, # 어떤 사람인지 추출해보자 select userID as "사용자", sum( SQL join group by having ASAC 2024.04.05 tjdals9219.tistory.com 메모장 데이터 그룹화 GROUP BY,HAVING,그룹함수 13 알고싶어 과목별 학생의 PK번호를 모름 과목별로 학생의 PK는 존재하지 않음 데이터 베이스에선 정확히 이거다 ! 지정할수 없는 값이기 때문에 오류가 난다. HAVING 절에는 GROUP BY 뒤에 쓰고 집계함수를 포함한 조건만 기술 그외의 조건은 WHERE절에 HAVING 절을 사용하면 WHERE절과 같이 조건을 달아서 이미 GROUP BY... 2024.04.10 coding-diary0.tistory.com 코딩 일지 2024.05.01 50일차 DB 집계함수, GROUP BY, HAVING, ORDER BY 집계함수 집계함수 설명 비고 AVG([DISTINCT | ALL] 표현식) 열의 평균값 COUNT(표현식) 열의 행 개수를 반환NULL 값은 카운트에 포함되지 않음 COUNT(*)은 NULL값 카운트 MAX(표현식) 열의 최대 값 MIN(표현식) 열의 최소 값 SUM([DISTINCT | ALL] 표현식) 열의 합계값 STDDEV([DISTINCT | ALL] 표현식) 열의 표준 편차 값 VARIANCE([DISTINCT | ALL] 표현식 ) 열의 분산 값 ** AVG(): NULL 값을 무시하고 GROUP BY 기준컬럼 -- GROUP BY절에 사용한 컬럼만 -- SELECT에서 직접조회 가능 SELECT emp_no, -- emp_nm, -- dept_cd, MAX(birth_de) FROM tb_emp GROUP BY emp_no ; GROUP BY 기준 2개 이상 부서코드로 그룹화 → 성별코드로 그룹화 SELECT dept_cd, gen_cd, COUNT(*) FROM tb_emp GROUP BY dept_cd, gen_cd ORDER BY dept_cd ; ** NULL 그룹 기준컬럼에 null값이 있다면 이 값들도 null 그룹화함 HAVING 절 GROUP BY에 대한 조건으로 WHERE절 사용 불가. 대신 HAVING절 사용 SELECT 컬럼 FROM 테이블명 GROUP BY 기준컬럼 HAVING 조건 * WHERE: 집계 전 필터링 * HAVING: 집계 후 필터링 S ORDER BY 기준 2개 이상 먼저 오는 순서대로 적용 부서코드 별로 정렬 → 이름으로 내림차 정렬 SELECT emp_no , emp_nm , dept_cd FROM tb_emp ORDER BY dept_cd, emp_nm DESC ; ALIAS, 컬럼 순서를 기준으로 사용 가능 혼용하여 사용할 수 있음 SELECT emp_no AS 사번, emp_nm AS 이름, addr AS 주소 FROM tb_emp ORDER BY 이름, 1 DESC ; ORDER BY 집계함수 -- 사원별로 2019년 월평균 수령액이 450만원 이상인 사원의 사원번호와 2019년 연봉 조회 SELECT emp_no , SUM(pay_amt) 연봉 FROM tb_sal_his WHERE pay_de BETWEEN '20190101' AND '20191231' GROUP BY emp_no HAVING AVG(pay_amt) >= 4500000 ORDER BY SUM(pay_amt) DESC --ORDER BY 연봉 DESC ; 5 -- 사원별로 2019년 월평균 수령액이 450만원 이상인 사원의 사원번호와 2019년 연봉 조회 SELECT emp_no , SUM(pay_amt) 연봉 FROM tb_sal_his WHERE pay_de BETWEEN '20190101' AND '20191231' GROUP BY emp_no HAVING AVG(pay_amt) >= 4500000 ORDER BY SUM(pay_amt) DESC --ORDER BY 연봉 DESC ; 2024.05.01 통합웹 더보기
서비스 안내 스토리의 글을 대상으로 검색결과를 제공합니다. 자세히보기 banker-bam.tistory.com 은행 다니는 하이디 HAVING 7 앞서 궁금했던 부서원의 급여총합이 9000을 넘는 부서는 HAVING을 쓰니 20번과 30번 부서로 판명났다. 조건을 두개씩 걸 수도 있다. 30번 부서는 부서원 급여총합이 9000을 넘겼지만 부서번호가 10, 20번에 해당하지 않아서 최종 결과에서 탈락했다. 30번부서는 저희와 함께갈 수 없습니다. 근데 이 문장, 이렇게도 쓸... 2024.04.19 티스토리 검색 더보기 brunch.co.kr 유니룬 Thank you for having me - 플레이데이트 영어 3 말도 유심히 기억해 두었다. 간단한 말들이지만 한국에서 배운 영어로 쓰는 표현과 현지에서 쓰는 표현은 많이 다르다. N과의 플레이데이트 Thank you for having 00. 동네친구 N이 처음 놀러 온 날, 아이를 데리러 온 엄마가 작은 간식을 건네며 “Thank you for having her.”이라는 인사를 남겼다. 아, 아이를 불러... 캐나다 일상 영어회화 2024.04.06 브런치스토리 검색 더보기 story.kakao.com 새로운 교회(Saeroun) 새로운 교회(Saeroun) - 카카오스토리 로라 證據하였으니 (영어esv) 히브리서 11:13 These all died in faith, not having received the things promised, but having seen them and greeted them from afar, and having acknowledged that they were... 2024.05.14 카카오스토리 검색 더보기
서비스 안내 Kakao가 운영하는 책 서비스 입니다. 다른 사이트 더보기 더 해빙(The Having)(50만부 기념 리커버 에디션) 저자 이서윤, 홍주연 출간 2020.3.1. 도서 14,400원 e북 11,250원 The Christian Mama's Guide to Having a Baby 저자 Macpherson ... 출간 2017.6.7. 도서 17,580원 Alvaro Siza. Having a cigarette with Alvaro Siza. DVD 도서 47,534원 결핍의 경제학 저자 센딜 멀레이너선, 엘... 출간 2014.3.31. 도서 16,200원 What to Do When You're Having Two 저자 Natalie Diaz 출간 2013.12.3. 도서 19,730원 Having People, Having Heart 저자 Scherz China 출간 2015.3.10. 도서 90,530원 Having People, Having Heart 저자 Scherz China 출간 2014.7.4. 도서 30,760원 You: Having a Baby 저자 Roizen Mich... 출간 2010.12.28. 도서 14,320원 How to Get What You Want Without Having to Ask 저자 Templar Ric... 출간 2011.6.1. 도서 16,280원 She's Having a Baby : And I'm Having a Breakdown : What Every Man Needs... 저자 Barron Jame... 출간 1998.5.20. 도서 15,890원 더보기 (주)카카오는 상품판매의 당사자가 아닙니다.법적고지 안내 (주)카카오는 통신판매중개자로서 통신판매의 당사자가 아니며 상품의 주문 배송 및 환불 등과 관련한 의무와 책임은 각 판매자에게 있습니다.
재테크 배우기 Learning&Having juicy000.cafe24.com/ 신청자 작성 재테크 및 경제 공부. 경제용어 및 관련 정보. first having now havingnow.tistory.com/ 신청자 작성 티스토리 생활정보 제공 블로그입니다. 음식 정보. Having have-ing.tistory.com/ 티스토리 it, 공부, 일상, 리뷰 사이트 더보기
서비스 안내 Melon Company가 운영하는 음악 서비스입니다. 다른 사이트 더보기 HAVING (Prod. Will Not Fear) untell 앨범 HP 2022.06.21. The Having DYLE 앨범 From Sunshi... 2023.08.18. Having DJ ROBEY 앨범 Having 2017.09.01. Having Gunter Harper 앨범 Honey 2023.02.28. Having The Sindecut 앨범 Changing Th... 1990.01.01. Having Tony Rossi 앨범 Now Hear This 2017.04.27. Strange Love Reiley 앨범 brb, having... 2021.10.29. YOU Reiley 앨범 brb, having... 2021.10.29. Having a Good Day Benj Heard 앨범 Having a Go... 2015.05.30. Tragedy Bee Gees 앨범 Spirits Hav... 1979.02.05. Young, Wild & Free (So What We Get Drunk and Having Fun) Mark Midnight 앨범 Young, Wild... 2012.08.09. song i made up to stop myself from having a panic attack just now (ft. rich) Field Medic 앨범 song i made... 2021.03.18. Having Our Way (Feat. Drake) Migos 앨범 Culture III 2021.06.11. Having A Lovely Talk Yuhki Kuramoto 앨범 Heartstring... 2014.12.11. 듣고 있나요 (Are You Having Your Ear To The Ground) 316 앨범 P-1 2011.04.01. Too Much Heaven Bee Gees 앨범 Spirits Hav... 1979.02.05. I'm having a hard time (Prod. wtfjusty) viceversa 앨범 I'm having ... 2022.09.05. Having A Blast Green Day 앨범 Dookie 1994.02.01. I Miss Having Someone to Talk To (Feat. Liv East) Folamour 앨범 I Miss Havi... 2020.10.05. I'm Having Santa Claus for Christmas Lustra 앨범 I'm Having ... 2007.01.01. 더보기