SQL语句实现表中字段的组合累加排序
有表如下:
id | in | out | index |
---|---|---|---|
1 | 10 | 12 | 2 |
2 | 9 | 8 | 2 |
3 | 12 | 8 | 3 |
1 | 9 | 9 | 3 |
1 | 12 | 0 | 3 |
2 | 5 | 18 | 2 |
2 | 20 | 0 | 2 |
这三个字段均为integer类型
现要求如下:
1、按index=2查找
2、将所有id相同的和在一起,数据要加在一起
3、最后呈现的数据要按in+out进行排序,按由大到小
为满足以上的要求:设计的SQL语句如下(假设表名为tab)
select id,sum(in) as in,sum(out) as out from tab where index=2 group by id order by in + out desc;
以上就是SQL语句实现表中字段的组合累加排序的全部内容,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
SQL order by ID desc/asc加一个排序的字段解决查询慢问题
解决方法就是在order by ID desc再加一个排序的字段,这样子可能会把速度提高很多.再加止排序的字段因查询而异了 如表 复制代码 代码如下: CREATE TABLE [dbo].[CMPP_SendCentre] ( [id] [int] IDENTITY (1, 1) NOT NULL , [SendType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [SendDate] [datetime] NOT NULL , [
-
SQL字符型字段按数字型字段排序实现方法
这是很久之前的就遇到的问题了,去年写了个WP插件:WordPress投票插件Ludou Simple Vote,由于有些使用者需要一个投票排行榜,所以需要用一条SQL来读取按得分排序的文章列表. Ludou Simple Vote的投票得分结果是以自定义栏目的方式存储在WordPress的postmeta中,分值存放在meta_value字段,而meta_value字段类型是longtext,如果直接使用下面的SQL查询语句来排序: 复制代码 代码如下: ORDER BY `meta_value
-
Mysql select in 按id排序实现方法
表结构如下: mysql> select * from test; +----+-------+ | id | name | +----+-------+ | 1 | test1 | | 2 | test2 | | 3 | test3 | | 4 | test4 | | 5 | test5 | +----+-------+ 执行以下SQL: mysql> select * from test where id in(3,1,5); +----+-------+ | id | name | +-
-
sqlserver中将varchar类型转换为int型再进行排序的方法
如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话我们是不希望看到如下情况的. 我们可以把varchar转换为int 然后进行排序 一. 复制代码 代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二. 复制代码 代码如下: select * from yourtable order by convert(int,yourcol); 仅适用于SQLSe
-
MYSQL 关于两个经纬度之间的距离由近及远排序
复制代码 代码如下: select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(111.86141967773438-lat)/360),2)+COS(PI()*33.07078170776367/180)* COS(lat * PI()/180)*POW(SIN(PI()*(33.07078170776367-lng)/360),2)))) as juli from `area` order by juli asc limit 0,20 差不多就是这样的
-
SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
1.ROW_NUMBER()基本用法: SELECT SalesOrderID, CustomerID, ROW_NUMBER() OVER (ORDER BY SalesOrderID) AS RowNumber FROM Sales.SalesOrderHeader结果集:SalesOrderID CustomerID RowNumber--------------- ------------- ---------------43659 676
-
Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a' 那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以. utf8_general_
-
sql多条件多字段排序(图文教程)
语句: 复制代码 代码如下: select * from [User] order by [Password] desc,Id asc 在一个条件重复的情况下,使用第二个条件排序如下: 注意这里的第 14,15条记录(在Password相同的情况下,根据Id排序) 语句: 复制代码 代码如下: select top(5) * from (select top(5)* from [User] order by Id desc ) x order by [Password] asc 在已经查询出来
-
让MySQL支持中文排序的实现方法
让MySQL支持中文排序 编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary". 编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了. mysql order by 中
-
SQL-ORDER BY 多字段排序(升序、降序)
ORDER BY _column1, _column2; /* _column1升序,_column2升序 */ ORDER BY _column1, _column2 DESC; /* _column1升序,_column2降序 */ ORDER BY _column1 DESC, _column2 ; /* _column1降序,_column2升序 */ ORDER BY _column1 DESC, _column2 DESC; /* _column1降序,_column2降序 */
随机推荐
- C++11返回类型后置语法的使用示例
- android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
- Vue.js学习笔记之常用模板语法详解
- Go语言hello world实例
- C#使用GZipStream解压缩数据文件的方法
- asp.net UrlReWriter使用经验小结
- PHP中多维数组的foreach遍历示例
- 文件的读出 编辑 管理
- Android 微信小视频录制功能实现详细介绍
- 编写最佳的Dockerfile的方法
- 原生js实现改变随意改变div属性style的名称和值的结果
- Lua元表与元方法实例讲解
- linux轻量级 Web 服务器第1/2页
- Spring Boot 日志配置方法(超详细)
- IE下JS保存图片的简单实例
- jquery struts 验证唯一标识(公用方法)
- kettle中使用js调用java类的方法
- IIS8.5 配置错误提示不能在此路径中使用此配置节的解决办法
- android使用OkHttp实现下载的进度监听和断点续传
- jQuery使用bind动态绑定事件无效的处理方法