mysql查询数据是否连续增长
记录一次比较查询,需求是比较内容是否一次比一次高,用来作为标签依据
大致问题如下 简化:
班级中有若干人,若干次考试。需要查询某人在考试时成绩越来越好(分数是每次都有增长)
思路:
1。使用group by 分组, 然后在查询内容使用 group_concat(【成绩字段】 order by 【时间或者自增长id】) 查询出每次按时间顺序考试的成绩 拼接,
2。使用group by 分组, 然后在查询内容使用 group_concat(【成绩字段】 order by 【成绩字段】) 查询出按成绩大小 排序的 内容。
join 上去。
再用 查询出来的内容比较 是否相同。如果相同。那么就说明 这个人的成绩每次都有提升。
具体sql 如下:
创建表结构:
CREATE TABLE `t_stock` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`stock_id` varchar(11) DEFAULT NULL COMMENT '股票代码',
`stock_name` varchar(20) DEFAULT NULL COMMENT '股票名称',
`sell_amount` double DEFAULT NULL COMMENT '主动出售统计金额',
`buy_amount` double DEFAULT NULL COMMENT '主动购买金额',
`unknow_amount` double DEFAULT NULL COMMENT '未知动向金额',
`market_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '交易时间',
`create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`data_amount` double DEFAULT NULL COMMENT '今日收盘价格',
`big_sell_amount` double DEFAULT NULL COMMENT '主动出售统计大单金额',
`big_buy_amount` double DEFAULT NULL COMMENT '主动购买大单金额',
PRIMARY KEY (`id`),
KEY `stock_id` (`stock_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=44248 DEFAULT CHARSET=utf8 COMMENT='记录每天某些股票的交意记录为以后提供参考';
大致查询sql:
select * from (
select GROUP_CONCAT((buy_amount+sell_amount) order by buy_amount+sell_amount) hl,stock_id , stock_name ,
SUBSTRING_INDEX(GROUP_CONCAT(data_amount order by id),',',1) from t_stock group by stock_id
)aa
join
(
select GROUP_CONCAT((buy_amount+sell_amount) order by id) idhl,stock_id , stock_name ,
SUBSTRING_INDEX(GROUP_CONCAT(data_amount order by id),',',1) from t_stock group by stock_id
)bb
on aa.stock_id = bb.stock_id
where aa.hl=bb.idhl
应该还能优化,暂时先想到这种,记录一下
最新文章
- 读书笔记--SQL必知必会11--使用子查询
- Longest Substring Without Repeating Characters
- sqlite简单使用
- ASP.NET MVC系列:添加控制器
- JavaWeb学习总结-05 Servlet 学习和使用(01)
- Cento 安装配置FastFDS
- js正则表达式的验证示例
- ireport 在 AIX Linux websphere下的字体安装
- java短路问题
- js模块化开发——前端模块化
- Java中泛型数组的使用
- php的定界符<;<;<;eof的问题
- Workbench利用Python驱动DM执行Js进行建模
- HDU 2175 汉诺塔IX (递推)
- Standard C 之 math.h和float.h
- dsdsd
- 在 Asp.NET MVC 中使用 SignalR 实现推送功能 [转]
- Vue如何引入远程JS文件
- Python:模块学习——os模块
- a6
热门文章
- C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(一)
- 浅谈Python中的if,可能有你不知道的
- 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
- CentOS7登录到控制台后无网络
- 【开发宝典】Java并发系列教程(四)
- .NET Core 项目启动时运行定时任务
- jquery(一:认识jquery、选择器)
- 什么是Http? http和https的区别
- JR文摘_TNFi和阿贝西普降低RA患者CVD风险
- js中的for循环,循环次数会多出一次。当循环到最后一个的时候,循环还会继续,并且此时i就变成remove?