欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

有关group by 排序的有关问题,请进

程序员文章站 2024-01-28 11:14:28
...
有关group by 排序的问题,请进
有这样一个表:tab1
+----+-------+--------+-------+
| id | aa | bb | cc |
+----+-------+--------+-------+
| 1 | 0001 | 1 | 10 |
| 2 | 0001 | 2 | 10 |
| 3 | 0002 | 6 | 10 |
| 4 | 0003 | 5 | 10 |
| 5 | 0003 | 7 | 10 |
| 6 | 0003 | 4 | 10 |
| 7 | 0004 | 3 | 10 |
+----+-------+--------+-------+

用了下列语句:
select aa,bb,sum(cc) as cc from tab1 group by aa order by cc desc,bb desc
输出结果如下:
aa bb cc
======================
0001 1 20
0002 6 10
0003 5 30
0004 3 10
我想要的结果是:
aa bb cc
======================
0001 1 20
0002 6 10
0003 4 30
0004 3 10
也就是说字段bb对应的数据库中最新一条数据的值,这个如何实现???

------解决方案--------------------
试一下
select tab1.aa,tab1.bb,ntab.cc from tab1,(select max(id) as id,sum(cc) as cc from tab1 group by aa) as ntab where tab1.id=ntab.id order by ntab.cc
------解决方案--------------------
楼上的应该是可以出来正确结果。(我没测试,但应该可以)

关于楼主的问题,给你回答下,mysql中group by的时候显示的记录是同group 中最先插入的,也就是最旧的:P呵呵,因此楼主的想法用简单的sql是没办法实现的。
有关group by 排序的有关问题,请进

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频