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 <= 5;
결과
* UNION ALL의 방법도 있음
참고한 블로그의 CROSS APPLY는 MySQL에서 불가한듯
참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=easternsun&logNo=220166275377
'MySQL' 카테고리의 다른 글
[MySQL] 데이터 랜덤으로 가져오기 (0) | 2021.07.13 |
---|---|
[MySQL] 연속일수 구하기 (0) | 2021.03.29 |
[MySQL] 월별 통계 (0) | 2021.03.29 |
[MySQL] SELECT, INSERT, UPDATE, DELETE (0) | 2021.03.29 |