반응형
다음과 같은 테이블이 있습니다.
| table.id | USER.id
----------------------------------------------
| 1 | 101
| 2 | 101
| 3 | 101
| 4 | 101
| 5 | 101
| 6 | 101
| 7 | 101
| 8 | 101
| 9 | 101
| 10 | 101
| 11 | 102
| 12 | 102
| 13 | 102
| 14 | 102
| 15 | 103
| 16 | 103
| 17 | 103
| 18 | 103
| 19 | 103
| 20 | 103
| 21 | 103
| 22 | 103
| 23 | 103
| 24 | 104
| 25 | 104
| 26 | 104
| 27 | 104
| 28 | 104
| 29 | 104
| 30 | 105
| 31 | 105
| 32 | 105
| 33 | 106
| 34 | 106
user.id로 그룹화 된 table.id의 수를 얻으려고하고 user.id의 수가 7보다 크면 결과를 7로 표시합니다 (카운트 결과를 7로 제한).
이 예에서 결과는 다음과 같아야합니다.
| USER.id | count of table.ID
----------------------------------------
| 101 | 7
| 102 | 4
| 103 | 7
| 104 | 6
| 105 | 3
| 106 | 2
난 노력 했어:
SELECT USERid, COUNT(table.id)
FROM table
WHERE table.id IN (select top 7 table.id from table)
GROUP BY USERid
과
SELECT USERid, COUNT(table.id)
FROM table
WHERE (
SELECT COUNT(table.ID) FROM table as t
WHERE t.id = t.id AND t.USERid <= table.USERid
) <= 7
GROUP BY USERid
해결 방법
SELECT USERid, LEAST(7, COUNT(*))
FROM table
GROUP BY USERid
귀하의 의견에있는 질문에서
SELECT SUM(countByUser)
FROM
(SELECT LEAST(7, COUNT(*)) as countByUser
FROM table
GROUP BY USERid) c
참조 페이지 https://stackoverflow.com/questions/19168834
반응형
'MySql' 카테고리의 다른 글
MySQL의 특정 열 업데이트 후 트리거 실행 (0) | 2020.12.21 |
---|---|
MySQL insert into in stored procedure with parameters MYSQL doesnt work (0) | 2020.12.21 |
MySQL MySql의 한 스키마에서 다른 스키마로 테이블과 데이터를 복사하는 스크립트 (0) | 2020.12.21 |
MySQL 문자열의 시작을 제외한 모든 위치에서 하위 문자열을 찾는 MySQL LIKE 문 (0) | 2020.12.21 |
MySQL Simple Math max function in MySQL (0) | 2020.12.21 |
댓글