service_name      read_date
1 DB 20060707 14:29:26    //取这条
2 DB 20060707 14:29:22
3 DB 20060707 14:29:18
4 DB 20060707 14:29:14
5 DB 20060707 14:29:09
6 DB 20060707 14:29:05
7 DB 20060707 14:29:01
8 DB 20060707 14:28:57
9 DB 20060707 14:28:53
10 DB 20060707 14:28:49
11 DB 20060707 14:27:40
12 DB 20060707 14:27:36
13 DB 20060707 14:27:32
14 WEB 20060706 16:36:14   //取这条
15 WEB 20060706 16:36:07
16 WEB 20060706 16:36:00
17 WEB 20060706 16:35:53
18 WEB 20060706 16:35:46
19 WEB 20060706 16:35:39
20 WEB 20060706 16:35:32
21 WEB 20060706 16:35:25
22 WEB 20060706 16:35:18
23 WEB 20060706 16:35:11
24 WEB 20060706 16:35:04
25 WEB 20060706 16:34:57已经分组排过序的表, 如上. 现在要取以service_name分组的read_date最大的记录, 即上面做标记的记录, 该怎么来写这个SQL? 感谢, 急!

解决方案 »

  1.   

    数据量不大的情况下
    select service_name ,max(read_date) where tablename gourp by service_name
      

  2.   

    SELECT service_name,MAX(read_date) FROM TB ORDER BY SERVICE_NAME
      

  3.   

    我也笔误
    select service_name ,max(read_date) from tablename gourp by service_name
      

  4.   

    不好意思 我少说了个字段 content
    也就是说要select出三个字段service_name ,max(read_date),content
    这时候该怎么写? 我试了好多次都不行
      

  5.   

    select a.content,a.service_name ,a.read_date from tablename a where a.read_date = 
    (select max(b.read_date) from tablename b where a.service_name=b.service_name)