第n行我讀過這篇文章:http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/和搜索等問題MySQL的選擇每
我有一個表是這樣的:
| 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
我試圖讓table.id的計數由user.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
偉大的作品!而且非常簡單。我將如何獲得該COUNT列的總和?我嘗試了SELECT userid,SUM(SELECT FROM LEAST(7,COUNT(*))FROM TABLE GROUP BY USERID)FROM table,儘管這導致錯誤 – Ken
是計數列的總和。在原始示例中,計數列與7個結果max的限制之和應爲= 29 – Ken
@Phil請參閱編輯然後 –