表1
id a b c
1 上海 嘉定 22
2 上海 闸北 33
3 上海 黄埔 44
4 北京 北京01 11
5 北京 北京02 22
6 北京 北京03 33
7 深圳 深圳01 44
8 深圳 深圳02 55
9 深圳 深圳03 66
10 深圳 深圳04 77
//取最大值结果如下:
3 上海 黄埔 44
6 北京 北京03 33
10 深圳 深圳04 77
表1
id a b c
1 上海 嘉定 2014/1/1
2 上海 闸北 2014/1/2
3 上海 黄埔 2014/1/3
4 北京 北京01 2014/1/4
5 北京 北京02 2014/1/5
6 北京 北京03 2014/1/6
7 深圳 深圳01 2014/1/7
8 深圳 深圳02 2014/1/8
9 深圳 深圳03 2014/1/9
10 深圳 深圳04 2014/1/10
//取最新的数据结果如下:
3 上海 黄埔 2014/1/3
6 北京 北京03 2014/1/6
10 深圳 深圳04 2014/1/10
第一问:
select *
from table1 t1,( select a,max(c) as c from table1 group by a ) t2
where t1.c=t2.c and t1.a=t2.a;
第二问:
select *
from table2 t1,(select a,max(c) as c from table2 group by a ) t2
where t1.c=t2.c and t1.a=t2.a;
很不错哦。
如果都是按升序排的
这一条语句就够了
select max(id),a,max(b),max(c) from table1 group by a
有问题,,,,
最大值好取,最大值的ID、名字、其他字段也要取出来,
@mkj小陈:
select * from table1 where id = (select max(id) from table1 group by a)
这个问题很多人问过的。唉...
这样的查询问题很多,让不忍细说。算了,直接上SQL
select id, a, b, c from table1 k
INNER JOIN
(Select a, max(c) as maxc from table1 group by a)L
on K.a=L.a and k.c=L.c
第一题和第二题可以采用一种答案:
select id,a,b,c from ( select *,row_number() over(partition by a order by c desc) as rId from 表1 ) where rId=1
拿到新的数据库不会写语句的时候 可以参考一下别人的,也可以搞一个orm框架 看一下别人自动生成的.