有下面的表:
作者 图书ID 图书名称 出版日期
a 1 xxxxx 2008-1
a 2 xxxxx 2009-1
b 5 xxxxx 2007-1
b 8 xxxxx 2008-2
a 10 xxxxx 2009-5
b 20 xxxxx 2009-8
想得到如下的结果:
作者名称 图书ID 最近出版图书名称 出版日期
a 10 xxxxxx 2009-5
b 20 xxxxxx 2009-8
SQL语句该如何写呢?
这只是截取一些数据,实际上数据很多,作者有许多,不是只有2个,所以top 2 不可行。
sql查询 分组后 每组某字段值最大的一行所有列
按照员工ID分组,取出ID值最大的一行 1、第一个方法,需要考虑ID有重复值的问题,如果最大值存在重复值,那么结果也重复。SELECT * FROM 员工信息变化表 T1 WHERE id = (SELECT Max (id) FROM 员工信息变化表 T2 WHERE T1.员工ID = T2.员工ID)2、第二个方法:该语句是在SQL Server中...
sql server 分组求最大值所在行
---做人要以诚信为本,二楼的根本就没测试过,哪里有这样写group by 的呢。。。---楼主想要的是这个。create table #t(作者 nvarchar(10) ,图书ID int,图书名称 nvarchar(10), 出版日期 nvarchar(10))insert #t select 'a',1,'xxxxx','2008-1' union all select 'a',2,'xxxxx','2009...
Sql Server 查询,一共三列,怎样查出第一个列值相同,第二列值最大的第...
《按某列分组,求另一列最大或最小值所在整行数据的方法》利用子查询,试一下,很好用的(a1可根据需要去掉):select a2,a1 from tablename where taborder=(select max(taborder) from tablename a where a.a2=tablename.a2)查出结果为 a,2 b,5 c,6 ...
SQL SERVER分组后查询最大日期的ID
用分析函数row_number来给分组内的记录编号,然后取编号值为1的记录即可。select s.*from ( select v.*, row_number() over (partition by b order by c desc) as order_num from #b v) swhere s.order_num = 1
SQL Server中如何分组查询最大值
D,ROW_NUMBER()OVER(PARTITION BY A ORDER BY A,B DESC) RN from A)19 WHERE RN=1 20 \/ A B C D --- --- -- -- 1 3 c3 d3 4 0 c4 d4 5 2 c6 d6 6 4 c8 d8 SQL>
sql server分组求最大值(100分)
SQL> SQL> select no,name,max(ht)2 from a 3 group by no,name 4 ;NO NAME MAX(HT)--- --- --- 100 张三 1986-5-1 101 李四 1999-5-1 SQL> insert into a values(100,'张三',to_date('1999-5-1','yyyy-mm-dd'));1 row inserted SQL> select * from...
sql 分组查最大的两个
DB2\/ ORACLE\/ SQL SERVER 2005以上可以用这个 SELECT A,B,C FROM (SELECT A, B,C, ROW_NUMBER() OVER(PARTITION BY A ORDER BY B desc, C DESC) rk FROM tab) t WHERE rk <= 2
sql server 2008中如何取某字段最大值所在的一条数据(多个字段)_百度知...
select * from ( select id,name,score,date,ROW_NUMBER() over(PARTITION by name order by score desc,date desc) as num from tablename ) T where T.num <= 1 order by name
sql server中如何查询某行中列最大的,并将这行中其他列显示出来_百度知 ...
SELECT top 1 a.cateid,COUNT(*) t1,b.cate FROM [ LinShi ].[ dbo ].[ temp_Report883 ] AS a JOIN clipping.dbo.categories AS b ON a.cateid = b.cateid WHERE diyuid = 2579 GROUP BY a.cateid,b.cate order by count(*) desc ...
sql-server怎样统计某一列相同的数值最多并求出来
凡事不能只看一步!select rtid, count(*) as num from table_name group by rtid 是获取table_name表中的rtid的不重复数据以及他们各自出现的次数 group by count一起用的话,那么就是把分组后的数据重复次数统计 然后再取一条数据,按照分组数量的倒排序!这样就可以取出来了!共同学习!