sql,groupby以后取每组前三行】的更多相关文章

--> 生成测试数据: #TIF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T CREATE TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME)INSERT INTO #T SELECT '001',1,'邹建','深入浅出SQLServer2005开发管理与应用实例','2008-05-10' UNION ALLSELE…
mysql分组取每组前几条记录(排名) 附group by与order by的研究 http://www.jb51.net/article/31590.htm --按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ --创建表…
mysql分组取每组前几条记录(排名) 附group by与order by的研究,需要的朋友可以参考下 --按某一字段分组取最大(小)值所在行的数据 复制代码代码如下: /* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ --创建表并插入数据: 复制代码代码如下: create…
与oracle的 rownumber() over(partition by xxx  order by xxx )语句类似,即:对表分组后排序 创建测试emp表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 DROP TABLE IF EXISTS emp; CREATE TABLE emp (   empno decimal(4,0) NOT NULL,   ename varcha…
按name分组取最大的两个val: [比当前记录val大的条数]小于2条:即当前记录为为分组中的前两条 > (select count(*) from tb where name = a.name and val > a.val ) order by a.name,a.val; val from tb where name=a.name order by val desc) order by a.name,a.val; ) order by a.name;…
1.创建表 create table tb( name varchar(10), val int, memo varchar(20) ); 2.插入数据 insert into tb values('a', 2, 'a2(a的第二个值)'); insert into tb values('a', 1, 'a1--a的第一个值'); insert into tb values('a', 3, 'a3:a的第三个值'); insert into tb values('b', 1, 'b1--b的第一…
当前时间 select GETDATE() 当前时间点前10分钟 dateadd() ,GETDATE()) 取当前时间点前10分钟以内的数据,且按创建时间倒序排 select * from tablename ,GETDATE()) order by CreateDate desc dateadd(间隔类型,增量,时间点) ,getdate()) --一年前 ,getdate()) --+6个月时间点 ,getdate()) --一周 ,getdate()) -- 2天 ,getdate())…
先初始化一些数据,表名为 test ,字段及数据为: SQL执行结果为:每个 uid  都只有 3 条记录.   SQL语句为: SELECT   * FROM   test main WHERE   (SELECT COUNT(1)    FROM test sub    WHERE       main.uid = sub.uid      AND main.gid > sub.gid   ) < 3;…
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ( `goods_id` ) unsigned NOT NULL AUTO_INCREMENT, `cat_id` ) ', `price` ) ', `status` ) ', PRIMARY KEY (`goods_id`), KEY `icatid` (`cat_id`) ) ENGINE=I…
sql数据库实现分组并取每组的前1(几)条数据 测试数据准备工作: 根据某一个字段分组取最大(小)值所在行的数据: 创建表并且插入数据 ),Val )) , 'a1--a的第一个值') , 'b2b2b2b2b2b2b2b2b值') , 'a2(a的第二个值)') , 'b1--b的第一个值') , 'a3:a的第三个值') , 'b3:b的第三个值') , 'c1c1c1c1c1c1c1c1c1c1c值') , 'b5b5b5b5b5b5b5b5b5b5值') , 'c2c2c2c2c2c2c…