- 论坛徽章:
- 0
|
10可用积分
mysql语法不太熟悉,这个需求也有点复杂,问题是这样的:
有一个表,定义为:
- CREATE TABLE IF NOT EXISTS t_play_info
- (
- id int NOT NULL AUTO_INCREMENT,
- Fuid int UNSIGNED NOT NULL DEFAULT 0,
- Fcid char(48) NOT NULL DEFAULT '',
- Fnum int NOT NULL DEFAULT 0,
- PRIMARY KEY(id),
- INDEX (Fcid, Fuid)
- );
复制代码
现在想查询同一个Fuid下面所有元素的Fnum之和最大者,也就是说,假如有以下数据:
+----+------+------+------+
| id | Fuid | Fcid | Fnum |
+----+------+------+------+
| 1 | 1 | cid1 | 1 |
| 2 | 1 | cid2 | 2 |
| 3 | 2 | cid2 | 2 |
+----+------+------+------+
那么Fuid为1时的Fnum总和最大,同时要求按照这个排序输出,即Fuid=1最大则优先输出所有与Fuid=1的列,然后再输出Fnum总和第二大的,以此类推.
mysql语句不太熟悉,谢谢帮忙. |
最佳答案
查看完整内容
SELECT Fuid, SUM(Fnum)FROM t_play_infoGROUP BY FuidORDER BY SUM(Fnum) DESC
|