Tôi đã đọc bài viết này: http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/ và tìm kiếm các câu hỏi khácmysql chọn n hàng đầu tiên cho mỗi nhóm
Tôi có một bảng mà là một cái gì đó như:
| 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
Tôi đang cố gắng để có được số lượng table.id được nhóm theo user.id và nếu tổng số user.id lớn hơn 7, chỉ hiển thị kết quả là 7 (còn giới hạn kết quả đếm là 7).
Trong ví dụ này, kết quả sẽ là:
| USER.id | count of table.ID
----------------------------------------
| 101 | 7
| 102 | 4
| 103 | 7
| 104 | 6
| 105 | 3
| 106 | 2
Tôi đã thử:
SELECT USERid, COUNT(table.id)
FROM table
WHERE table.id IN (select top 7 table.id from table)
GROUP BY USERid
và
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
Các công trình lớn! Và rất đơn giản. Làm cách nào tôi nhận được SUM của cột COUNT đó? Tôi đã thử SELECT userid, SUM (SELECT LEAST (7, COUNT (*)) TỪ bảng GROUP BY USERid) TỪ bảng, mặc dù điều này dẫn đến lỗi – Ken
Có tổng của cột đếm đó. Trong ví dụ ban đầu, tổng của cột đếm với giới hạn tối đa 7 kết quả sẽ là = 29 – Ken
@Phil xem chỉnh sửa sau đó –