请帮助我的sql查询。
我有一个数据库表,我需要查询它,但需要满足条件。请查看下面的示例数据:
<table>
<tr><td>id</td><td>user_id</td><td>post_id</td><td>objective_id</td><td>created</td></tr>
<tr><td>1</td><td>1</td><td>41</td><td>1</td><td>2019-07-19 13:01:25</td></tr>
<tr><td>2</td><td>1</td><td>41</td><td>2</td><td>2019-07-19 13:15:39</td></tr>
<tr><td>3</td><td>1</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>4</td><td>2</td><td>41</td><td>1</td><td>2019-07-19 13:01:25</td></tr>
<tr><td>5</td><td>2</td><td>41</td><td>2</td><td>2019-07-19 13:15:39</td></tr>
<tr><td>6</td><td>2</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>7</td><td>3</td><td>41</td><td>1</td><td>2019-07-19 13:01:25</td></tr>
<tr><td>8</td><td>3</td><td>41</td><td>2</td><td>2019-07-19 13:15:39</td></tr>
<tr><td>9</td><td>3</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>10</td><td>4</td><td>41</td><td>1</td><td>2019-07-19 13:01:25</td></tr>
<tr><td>11</td><td>4</td><td>41</td><td>2</td><td>2019-07-19 13:15:39</td></tr>
<tr><td>12</td><td>4</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
</table>
我需要选择特定post_id中的所有用户,但仅选择其Objective_id为最高值的条目。 我能够做到这一点,但我还需要一个条件。每个目标只有2个用户。按ID DESC排序。
所以结果应该是:
<table>
<tr><td>id</td><td>user_id</td><td>post_id</td><td>objective_id</td><td>created</td></tr>
<tr><td>9</td><td>3</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>12</td><td>4</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
</table>
这是我使用的查询:
SELECT id, user_id, objective_id, created
FROM my_table as t1
WHERE t1.id = (SELECT t2.id
FROM my_table t2
WHERE t2.user_id = t1.user_id AND t2.post_id = 41 ORDER BY t2.objective_id DESC limit 1)
我得到的结果是:
<table>
<tr><td>id</td><td>user_id</td><td>post_id</td><td>objective_id</td><td>created</td></tr>
<tr><td>3</td><td>1</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>6</td><td>2</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>9</td><td>3</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
<tr><td>12</td><td>4</td><td>41</td><td>4</td><td>2019-07-19 13:15:41</td></tr>
</table>
这是唯一的挑战:每个Objective_id的最大用户数为2。