准备数据 SQL语句 SELECT * FROM admin WHERE id IN ( SELECT MAX( id ) FROM admin GROUP BY order_id ); 查询结果:…
在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条数据的sql都是使用row_number() over()函数来实现 例如: select t1.* from ( select t.*,     ROW_NUMBER() over(partition t.id order by t.update_time desc) as rn from tab…
与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…
Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="Test2" 以上list如果直接使用distinct方法进行过滤,仍然返回3条数据,而需要的结果是2条数据.下面给出解这个问题的方法: 方法1: Distinct 方法中使用的相等比较器.这个比较器需要重写Equals和GetHashCode方法,个人不推荐,感觉较麻烦,需要些多余的类,并且用起来还…
mysql方法来源于:http://www.cnblogs.com/jjcc/p/5896588.html ###在网上看到一篇,非常赞的方法### 比如说要获取班级的前3名,mysql就可以用GROUP_CONCAT  + GROUP BY + substring_index实现. 考试表 DROP TABLE IF EXISTS `test`;CREATE TABLE `test` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT N…
删除重复行 DELETE FROM ecm_member_login_session WHERE (number , client_code) IN ( ) AND update_time NOT IN ( ); 但是报1093错误 :: ) ) Error Code: . You can't specify target table 'ecm_member_login_session' for update in FROM clause 0.046 sec 后来在 嵌套查询语句里面再嵌套一层即…
SQL Server中ROW_NUMBER()函数的使用 参考文章:https://blog.csdn.net/pan_junbiao/article/details/79941162 业务中的问题:固定资产的单价和总价由于设置成小数点两位,导致资产的总数拆分数量后的单价和单价乘数量的值并不完全相同,有小数点上的问题. 如某资产总价为10,数量为3个, 则单价 10/3=3.333333333  这里取两位小数存为3.33 但单价*数量后  3.33*3=9.99,9.99和10相差0.01.由…
1.先将集合进行分组(分组字段)2.在判断分组的数量是否大于 03.大于0,则有重复的数据…
调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-------+-----+ | id | name | pwd | +----+-------+-----+ | 1 | mike | 123 | | 2 | jack | 456 | | 3 | alex | 555 | | 4 | peter | 989 | | 5 | app | 123 | | 6…
SELECT * FROM (SELECT * FROM TABLE_NAME ORDER BY COL1) WHERE ROWNUM = 1; 备注: 1.不能给 (SELECT * FROM TABLE_NAME ORDER BY COL1)加别名,会提示无效: 2.只能取第一行,取其他行取不了,比如ROWNUM = 2等就取不了: 3.据说数据量大了会存在效率问题. 以上备注有待研究…