举个例子,
select id,name,dateTime,rank from table1 group by rank order by id desc;
上面的语句中rank有许多重复的记录,dateTime中也有多个重复的时间
这么来说吧,一个表,值如下:
+----+-------------------------+---------------------+------+
| id | name                    | dateTime            | rank |
+----+-------------------------+---------------------+------+
|  2 | 大地的天使              | 2006-11-03 12:42:55 |    2 |
|  8 | 口是心非                | 2006-11-03 12:42:55 |    2 |
|  9 | 白色才情·再见女郎      | 2006-11-03 12:42:55 |    2 |
| 10 | 红色热情                | 2006-11-03 12:42:55 |    2 |
| 57 | Jacky Cheung 15-Disc1   | 2006-10-26 22:49:06 |    5 |
| 58 | Jacky Cheung 15-Disc2   | 2006-10-26 22:49:05 |    5 |
| 59 | 爱与交响曲              | 2006-10-26 22:49:05 |    5 |
| 60 | 当我想起你EP            | 2006-10-26 22:48:59 |    5 |
| 61 | 等你等到我心痛          | 2006-10-26 22:48:59 |    5 |
| 62 | 似曾相识                | 2006-10-26 22:48:59 |    5 |
| 63 | 我与你                  | 2006-10-26 22:48:59 |    5 |
| 64 | 张学友钢琴恋曲          | 2006-10-26 22:48:59 |    5 |
| 65 | 忘不了你                | 2006-09-16 06:58:59 |    6 |
| 66 | 夏の寒風                | 2006-09-16 06:58:59 |    6 |
| 67 | 爱情陷阱                | 2006-09-16 06:58:59 |    6 |
| 68 | 暴风女神Lorelei         | 2006-09-16 06:58:59 |    6 |
| 69 | THUNDER ARM             | 2006-09-16 06:58:59 |    6 |
| 70 | 第一滴泪                | 2006-09-16 06:58:59 |    6 |
| 71 | ALAN TAM REMIX          | 2006-09-16 06:58:59 |    6 |
| 72 | 谭咏麟梦幻柔情演唱会    | 2006-09-16 06:58:58 |    6 |
| 73 | 谭咏麟梦幻柔情演唱会(2) | 2006-09-16 06:58:58 |    6 |
| 74 | 把你藏在歌里面都为了爱  | 2006-09-16 06:58:58 |    6 |
| 75 | 首麟合唱歌              | 2006-09-16 06:58:58 |    6 |
| 76 | 神话1991                | 2006-09-16 06:58:58 |    6 |
| 77 | 谭咏麟梦幻柔情演唱会    | 2006-09-16 06:58:58 |    6 |
| 78 | 谭咏麟梦幻柔情演唱会(2) | 2006-09-16 06:58:58 |    6 |
| 79 | 神话1992                | 2006-09-16 06:58:57 |    6 |
| 80 | 你爱他吗                | 2006-10-29 12:44:31 |    7 |
| 81 | 让我愉快爱一次          | 2006-10-29 02:16:57 |    8 |
| 82 | 要不是爱上你            | 2006-11-03 12:30:50 |    9 |
+----+-------------------------+---------------------+------+
现在希望一句sql语句,得到下面这样的结果
+----+-------------------------+---------------------+------+
| id | name                    | dateTime            | rank |
+----+-------------------------+---------------------+------+
| 10 | 红色热情                | 2006-11-03 12:42:55 |    2 |
| 57 | Jacky Cheung 15-Disc1   | 2006-10-26 22:49:06 |    5 |
| 71 | ALAN TAM REMIX          | 2006-09-16 06:58:59 |    6 |
| 80 | 你爱他吗                | 2006-10-29 12:44:31 |    7 |
| 81 | 让我愉快爱一次          | 2006-10-29 02:16:57 |    8 |
| 82 | 要不是爱上你            | 2006-11-03 12:30:50 |    9 |
+----+-------------------------+---------------------+------+
也就是得到rank值只取唯一的一个,而相同的rank中取时间最新的,相同的时间中取id最后插入的select id,name,dateTime,rank from table1 group by rank order by id desc这句SQL语句只能把rank值取唯一的,但不能在相同的rank中取最新的时间,更不能在相同的时间中取最新的id值

解决方案 »

  1.   

    select id,name,dateTime,rank from table1 group by rank order by rank;
      

  2.   

    select last(id),name,max(dateTime),rank from table1 group by rank order by rank;
      

  3.   

    select id,name,max(datetime),rank from song group by rank  order by rank,id;
      

  4.   

    select id,name,max(dateTime) as datetime,rank from table1 group by rank order by rank;
      

  5.   

    忘记说了。song 是我在本机上建立的表。和你的table1是一样的。