小编Ada*_*dam的帖子

限制分组中的每个组

现在我知道这个问题之前已经被问过好几次了,但是我已经尝试将不同的现有解决方案应用于我的具体问题很长一段时间了,但没有成功。所以我转向这里希望得到一些指导。

我有一个名为 tblanswers 的表,其中包含链接到另一个表中不同问题的答案。我想要的是获取特定问题 ID 的每个答案的计数,但将其限制为每月的第 n 个答案。

来自 tblanswers 的示例数据:

id  qid answer  timestamp
72  162 2       1366027324
71  161 4       1343599200
70  162 2       1366014201
69  161 4       1366011700
68  162 2       1366006729
67  161 3       1366010948
66  162 2       1365951084
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的查询:

SELECT *, COUNT(*) c FROM(
    SELECT answer, timestamp, YEAR(FROM_UNIXTIME(timestamp)) yr, MONTH(FROM_UNIXTIME(timestamp)) mo FROM tblanswers
        WHERE qid = 161
            ORDER BY timestamp ASC
) q GROUP BY YEAR(FROM_UNIXTIME(timestamp)), MONTH(FROM_UNIXTIME(timestamp)), answer
Run Code Online (Sandbox Code Playgroud)

这会给我这样的结果:(样本数据中的日期和数字不准确)

answer  yr      mo  c
1 …
Run Code Online (Sandbox Code Playgroud)

mysql group-by greatest-n-per-group limit-per-group

5
推荐指数
1
解决办法
1179
查看次数