Home > Backend Development > PHP Tutorial > 有关group by 排序的有关问题,请进

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

WBOY
Release: 2016-06-13 10:00:34
Original
948 people have browsed it

有关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是没办法实现的。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template