MySQL

    [MySQL] 그룹 별 상위 n 개

    [MySQL] 그룹 별 상위 n 개

    sort 는 D, T, O 3개가 있고 group by sort를 하여서 D, T, O 의 데이터들을 상위 각 각 5개씩 불러올 것이다. RANK(), ROW_NUMBER()를 사용하여 각각 5개의 데이터 뽑아왔다. SELECT * FROM ( SELECT *, RANK() OVER (PARTITION BY qna.sort ORDER BY qna.question ASC, qna.id ASC) AS a FROM QnAQuestion AS qna ) AS rankrow WHERE rankrow.a

    [MySQL] 데이터 랜덤으로 가져오기

    [MySQL] 데이터 랜덤으로 가져오기

    ORDER BY rand() 사용 SELECT * FROM ConceptTest3 WHERE status = 'Activated' ORDER BY rand() LIMIT 1; LIMIT 으로 랜덤으로 가져올 데이터 제한 >> LIMIT 으로 제한을 하지 않으면 테이블의 모든 데이터들이 불러와지고 정렬이 랜덤으로 출력됨

    [MySQL] 연속일수 구하기

    [MySQL] 연속일수 구하기

    SELECT goalId, date_format(createAt, '%Y.%m.%d') as createAt, count(row_num) as countDay FROM ( SELECT goalId, createAt, goalBookId, @var:=@var+1 AS row_num, date_format(ADDDATE(createAt, -@var), '%Y-%m-%d') AS group_date FROM ( SELECT @var:=0, a.goalId, a.createAt, goalBookId FROM Challenge AS a RIGHT JOIN Goal AS b ON a.goalId = b.goalId WHERE a.goalId = ${goalId} GROUP BY a.goalId, DATE(a.cre..

    [MySQL] 월별 통계

    [MySQL] 월별 통계

    SELECT MONTH(createAt) AS date, sum(time) FROM Challenge where Challenge.userId = 1 GROUP BY date ORDER BY date;

    [MySQL] SELECT, INSERT, UPDATE, DELETE

    INSERT 데이터 추가 INSERT INTO 테이블 VALUES (값); 테이블 안의 전체 컬럼에 값 추가 INSERT INTO 테이블(컬럼) VALUES (값); 지정 컬럼에 값 추가 ex) INSERT INTO 테이블(컬럼) VALUES (값)(값)(값)(값) ...; 여러개의 값 추가 UPDATE 데이터 수정 UPDATE 테이블 SET 컬럼1 = 값1, ....; 테이블 안의 컬럼1의 모든 데이터 값1로 수정 UPDATE 테이블 SET 컬럼1 = 값1, .... where 조건; 조건을 가진 컬럼1의 값만 값1로 수정 DELETE 데이터 삭제 DELETE FROM 테이블; 테이블의 데이터 전체 삭제 DELETE FROM 테이블 WHERE 컬럼2 = 값2; 값2를 가진 컬럼2의 데이터 삭제