这是我正在处理的表
mysql> SELECT * FROM reacts;
+-----+--------------------+--------------------+--------------------+---------+-----------+
| id | userid | messageid | channelid | upvotes | downvotes |
+-----+--------------------+--------------------+--------------------+---------+-----------+
| 1 | 226790622768398336 | 621659327299715072 | 446794429597220868 | 1 | 1 |
| 3 | 226790622768398336 | 621662271642402817 | 446794429597220868 | 2 | 2 |
| 4 | 226790622768398336 | 621662782403903489 | 446794429597220868 | 2 | 1 |
| 5 | 226790622768398336 | 621663464527757313 | 446794429597220868 | 2 | 2 |
| 6 | 226790622768398336 | 621666397768122379 | 446794429597220868 | 3 | 2 |
| 7 | 276500077248512010 | 621669530996965383 | 446794429597220868 | 1 | 1 |
| 8 | 276500077248512010 | 621669605156323328 | 446794429597220868 | 1 | 1 |
| 9 | 276500077248512010 | 621669704653733889 | 446794429597220868 | 2 | 1 |
| 10 | 276500077248512010 | 621669842575032341 | 446794429597220868 | 2 | 1 |
+-----+--------------------+--------------------+--------------------+---------+-----------+
我想SELECT
从MAX
.SUM(upvotes - downvotes)
我已经尝试从这里调整示例,但没有成功。
简而言之,我想做一个应该是这样的查询(伪代码):
SELECT id,
messageid,
channelid,
MAX(SUM(upvotes - downvotes))) AS total
FROM reacts;
编辑
对于这个数据样本,输出应该是这样的:
+-----+--------------------+--------------------+--------------------+-------+
| id | userid | messageid | channelid | total |
+-----+--------------------+--------------------+--------------------+-------+
| 4 | 226790622768398336 | 621662782403903489 | 446794429597220868 | 1 |
| 6 | 226790622768398336 | 621666397768122379 | 446794429597220868 | 1 |
| 9 | 276500077248512010 | 621669704653733889 | 446794429597220868 | 1 |
| 10 | 276500077248512010 | 621669842575032341 | 446794429597220868 | 1 |
+-----+--------------------+--------------------+--------------------+-------+