【发布时间】:2016-06-03 23:32:16
【问题描述】:
我有这张桌子,类似于下面的一张。 表格显示玩家积分:
- s主要玩家积分
- d 次要点;
- 日期计算时间。
我希望能够过滤与 s 和 d 彼此相邻的行。日期应与最后一个相同。
例如,这里我们应该跳过 ri - 13,因为它与 ri -12 相同。也跳过 ri - 15,19,20,21,22,23 等等。但不应跳过和分组第 28、29、30、31 行。
我问是因为 GROUP BY 对我的情况不起作用。有什么想法吗?
表格示例:
ri date s d
1 2016-05-23 4 355
2 2016-05-16 4 352
3 2016-05-09 4 349
4 2016-05-02 4 352
5 2016-04-25 4 358
6 2016-04-18 4 359
7 2016-04-11 4 200
8 2016-04-04 4 201
9 2016-03-21 4 198
10 2016-03-07 4 199
11 2016-02-29 4 201
12 2016-02-22 4 203
13 2016-02-15 4 203
14 2016-02-08 4 200
15 2016-02-01 4 200
16 2016-01-18 4 201
17 2016-01-11 4 198
18 2016-01-04 4 183
19 2015-12-28 4 183
20 2015-12-21 4 183
21 2015-12-14 4 183
22 2015-12-07 4 183
23 2015-11-30 4 183
24 2015-11-23 4 182
25 2015-11-16 4 149
26 2015-11-09 4 148
27 2015-11-02 4 145
28 2015-10-26 4 109
29 2015-10-19 4 110
30 2015-10-12 4 109
31 2015-10-05 4 110
32 2015-09-28 4 106
33 2015-09-21 4 108
34 2015-09-14 4 109
35 2015-08-31 5 108
36 2015-08-24 5 108
37 2015-08-17 5 136
38 2015-08-10 5 136
39 2015-08-03 4 123
40 2015-07-27 4 122
41 2015-07-20 4 125
42 2015-07-13 4 126
43 2015-06-29 4 130
44 2015-06-22 4 128
45 2015-06-15 4 126
46 2015-06-08 4 120
47 2015-05-25 9 120
48 2015-05-18 9 122
49 2015-05-11 9 121
50 2015-05-04 9 119
51 2015-04-27 9 122
52 2015-04-20 10 124
53 2015-04-13 9 173
54 2015-04-06 9 172
55 2015-03-23 8 174
56 2015-03-09 7 89
57 2015-03-02 7 89
58 2015-02-23 7 92
59 2015-02-16 7 96
60 2015-02-09 8 93
61 2015-02-02 9 88
62 2015-01-19 4 89
63 2015-01-12 4 89
64 2015-01-05 4 94
【问题讨论】:
-
您好,澄清一下,目前我做
SELECT date, s, d FROM player_points WHERE player_id = 1497103 AND date > '2015-01-01'如果我做SELECT date, s, d FROM player_points WHERE player_id = 1497103 AND date > '2015-01-01' GROUP BY s,d它会跳过一些对我来说很重要的结果。 -
imo,请不要在 cmets 中发布代码 - 它不可读。而是将其添加到您的问题中。这样,1)我们可以很容易地理解它。 2) 新人无需阅读 cmets 即可了解您决定向我们解释的所有信息。之后,您可以删除评论,因为它只会使线程更难理解。如果你得到一个有效的答案,那么你就不需要费心了:)
-
我确切地知道数据集的样子。但我不知道所需的结果集应该是什么样子。我想知道你是否可以通过某种方式解决这个问题?
标签: mysql sql group-by grouping