변경 전 SELECT c.title, a.cnt_checkins, b.cnt_total, (a.cnt_checkins/b.cnt_total) AS ratio FROM ( SELECT course_id, count(DISTINCT (user_id)) AS cnt_checkins FROM checkins GROUP BY course_id ) a INNER JOIN ( SELECT course_id, count(*) AS cnt_total FROM orders GROUP BY course_id ) b ON a.course_id = b.course_id INNER JOIN courses c ON a.course_id = c.course_id 변환 하기 변경 후 WITH table1 AS( SELECT cours..
전체 글
imSoo TecBlog서브쿼리(subquery)는 쿼리문 안에 쿼리가 들어가는 것을 의미한다. 서브쿼리를 작성할때는 서브쿼리문 앞에 Tap 키로 띄어쓰기를 맞춰준다. 1. WHERE - subquery SELECT * FROM 테이블명1 WHERE 필드명1 IN ( SELECT 필드명2 FROM 테이블명2 WHERE 필드명 ='필드명' ) EX) SELECT * FROM users WHERE user_id IN ( SELECT user_id FROM orders WHERE payment_method ='kakaopay' ) 풀이) orders 안에 있는 user_id 필드에 payment_method='kakaopay' 결과물을 users 테이블에 있는 user_id 와 겹치는 *(모든정보) 보여주세요 2.SELECT 서브쿼..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczHXxK%2FbtrQeUPMy2Q%2Fi8NAltQqSFiib9ZfPfK03K%2Fimg.png)
문제점 : 디비 삭제 쿼리를 작성하던 도중 계속 사용중인 디비를 찾지 못하는 오류가 발생 했다. 데이터가 안넘어 오는게 아닐까 아니면 오타가 났나 아무리 찾아봐도 모르겠다 -- 인덱스 번호인 3이 잘 출력이 됏는데 ... 알고보니 str타입 이었다... print(type(tindex_receive)) 꼭 타입 확인하고 쿼리 작성하기 꼭...!!
SQL 관련 글을 쓰다보니 쿼리문은 대문자 그 외는 소문자로 작성하는데 티스토리에서 아이콘을 클릭해가며 글자색 변경 하는거에 현타를 느껴, Q. 자동으로 대소문자를 구별해서 색상을 변환 해주는걸 구현해보기로 생각해서 만들어 봤다. function translation_comment(){ let rows = $('#translation').val(); for (i = 0;i < rows.length; i++){ let a = rows.charAt(i); //charAt()함수로 글자 하나씩 접근한다. if (a == a.toUpperCase()){ //받아온 변수 a가 대문자인지 판별한다. let temp = `${a}` $('#translationreturn').append(temp) //검토완료된 대문..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0shiA%2FbtrV4udnD4I%2F8IFNBQrqETFuJdFx2qi1v0%2Fimg.jpg)
테이블 연결 JOIN 보통 Primary Key 및 Forign Key를 이용하여 조인한다. SELECT * FROM 테이블명 INNER JOIN 테이블명 *INNER은 생략가능 [ LEFT INNER JOIN 왼쪽기준 , RIGHT INNER JOIN 오른쪽기준 ] SELECT A.USER_ID, A.NAME, B.COMPANY_NAME FROM USERTABLE A JOIN COMPANY B ON A.USER_ID = B.USER_ID; ON 테이블명.필드명 = 테이블명.필드명 ex) SELECT * FROM users(테이블명) u(alias 별칭) LEFT JOIN point_users(테이블명) p(alias 별칭) // LEFT를 생략하면 자동으로 LEFT로 지정된다 ON u.user_id =..
1. GROUP BY SELECT 필드명 FROM 테이블명 GROUP BY 필드명 중복된 것을 취합해 준다. DISTINCT = 단일의 대상 GROUP BY = 여러 대상 (집계,통계 데이터) ex) 같은성씨의 갯수 알아보기 SELECT 필드명,COUNT(*) FROM 테이블명 GROUP BY 필드명 2. ~별로 최소값 구하기 (GROUP BY MIN) ~별로 (그룹별 , 나이별 , 날짜별) < GROUP BY SELECT 필드명1,MIN(필드명2) FROM 테이블명 GROUP BY 필드명1 풀이.= 테이블 에서 필드명1으로 묶은 후 거기서 필드명1안에 필드명2로된 최소값들을 구하라 ex) 1주차 별 라이크 수 구하기 SELECT week,MIN(likes) FROM checkins GROUP BY we..
1. SHOW TABLES < 테이블 목록을 확인한다. 2. 확인한 테이블을 보고 SELECT * FROM 테이블명 내가 필요한 정보가 어디에 담겨 있는지 인지 한다. 3. WHERE 로 필요한 정보를 찾는다. SELECT * FROM checkins WHERE user_id = '12dd94fe' < 여기서 문자열은 작은따옴표 ( ' ' ) 안에 넣어준다. ! 숫자는 따옴표를 안넣는다 *빨간색 글씨는 sql의 명령어로 데이터명과 햇깔리지 않게 대문자로 표기해준다. 4.데이터 필드 2개 찾기 (WHERE AND) ex) 이름 황** 과 결재를 카드로 한 사람 찾기. SELECT * FROM checkins WHERE user_id = '황**' AND payment_method = 'CARD' < 이처럼..